Laravel Middleware

Author: Al-mamun Sarkar Date: 2020-07-08 13:23:01

Laravel middleware is used to filter HTTP requests while entering into the application. I this lesson I will show how to create and use middleware in Laravel application.

 

Create a Middleware:

php artisan make:middleware TestMiddleware

TestMiddleware:

amespace App\Http\Middleware;

use Closure;

class TestMiddleware
{
    public function handle($request, Closure $next)
    {
        // Perform action

        return $next($request);
    }
}

 

Registering Middleware:

app/Http/Kernel.php
protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        
        'test' => \App\Http\Middleware\TestMiddleware::class,
    ];

 

Using Middleware:

Route::get('path', function () {
    //
})->middleware('test');

 

Multiple middleware:

Route::get('/', function () {
    //
})->middleware('auth', 'test');

 

On Route Group:

Route::group(['middleware' => ['test']], function () {
    //
});

Route::middleware(['test', 'auth'])->group(function () {
    //
});