こんなときにつかう
protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, ......
Route::get('admin/profile', function () { // })->middleware('auth','auth.basic','binding','xxx','yyy');
こんな感じに、たくさんミドルウェアを書くのは面倒。
せっかくなら、ひとまとめにしたり、グループ化したい。
こう書く
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], 'api' => [ 'throttle:60,1', 'auth:api', ], ];
Route::get('/', function () { // })->middleware('web');
こんなふうに、ひとまとめにできる。
グループ化すると、見やすい。さらにグループにすることで、意味の単位が作れる。
'top'とか、'admin'とか、'login'など、使われるミドルウェアの種類をひとまとめにすると、コピペしなくていいね。
参考元
公式ドキュメントー