Laravel 中间件:中间件组 Draft
在 Laravel 中,支持把多个中间件打包成一组,方便将它们批量应用到路由中去。
打包多个中间件为一组
要将多个中间件打包为一组,只需在 app\Http\Kernel.php
文件的$middlewareGroups
属性中使用一个键把多个中间件组合在一起即可,下面是$middlewareGroups
属性的默认定义:
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
可以看到,Laravel 内置了开箱即用的 web
和 api
中间件组,其中包含你可能希望应用于 Web 页面和 API 路由的常用中间件。
中间件组定义好后,可以采用与单个中间件相同的语法分配给路由和控制器操作。中间件组使得一次将多个中间件分配给一个路由组也变得更加方便:
Route::get('/', function () {
//
})->middleware('web');
Route::group(['middleware' => ['web']], function () {
//
});