Laravel 中间件:中间件组 Draft 1 个改进

在 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 内置了开箱即用的 webapi 中间件组,其中包含你可能希望应用于 Web 页面和 API 路由的常用中间件。

中间件组定义好后,可以采用与单个中间件相同的语法分配给路由和控制器操作。中间件组使得一次将多个中间件分配给一个路由组也变得更加方便:

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

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

参考

本 Wiki 尚未完善,邀您参与 如何撰写一篇高品质的 Wiki?
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!