Laravel Middleware: Middleware Parameters

Middleware Parameters

<?php

namespace App\Http\Middleware;

use Closure;

class CheckRole
{
    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string  $role
     * @return mixed
     */
    public function handle($request, Closure $next, $role)
    {
        if (! $request->user()->hasRole($role)) {
            // Redirect...
        }

        return $next($request);
    }

}
Route::put('post/{id}', function ($id) {
    //
})->middleware('role:editor');

Middleware parameters may be specified when defining the route by separating the middleware name and parameters with a :.

Multiple parameters should be delimited by commas.

Additional middleware parameters will be passed to the middleware after the $next argument.

Related concepts

Middleware Parameters

Laravel Middleware: Middleware Parameters — Structure map

Clickable & Draggable!

Laravel Middleware: Middleware Parameters — Related pages: