Middleware is a filter that checks an incoming HTTP request before it reaches the controller.
Create Custom Middleware (Cmd)
We have to create custom middleware using the laravel command.
So let’s open your terminal and run bellow command:
php artisan make:middleware <middleware-name>php artisan make:middleware CheckType
CheckType is name of middleware.
After the above run command, you will find one file on bellow location and you have to write the following code:
Location:- Root/app/Http/Middleware/CheckType.php
<?php
namespace App\Http\Middleware;
use Closure;
class AgeMiddleware {
public function handle($request, Closure $next) {
return $next($request);
}
}Registering Middleware
We need to register each and every middleware before using it. There are two types of Middleware in Laravel.
- Global Middleware -These run on every HTTP request to your application. You can add them to the $middleware property of the app/Http/Kernel.php file.
protected $middleware = [
// Other middleware...
\App\Http\Middleware\MyMiddleware::class,
];- Route Middleware - These are assigned to specific routes or groups of routes. You can add them to the $routeMiddleware property of the app/Http/Kernel.php file.
protected $routeMiddleware = [
// Other middleware...
'my.middleware' => \App\Http\Middleware\MyMiddleware::class,
];
Add Middleware in Route
Now we will create a simple route using CheckType middleware. So let’s simply open the routes.php file and add those routes.
Location:- Root/routes/web.php
Route::get("check-md",["uses"=>"HomeController@checkMD","middleware"=>"checkType"]);Add Controller Method
Now at last we have to add a new controller method checkMD() in your Home Controller. So let’s add the “checkMD()” method on the HomeController.php file.
Location:- Root/app/Http/Controllers/HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function checkMD()
{
dd('checkMD');
}
}
Ok, now we are ready to run our example, so you can run the below links and check how custom helper works.