Laravel 8 中間件組

2021-07-16 17:58 更新

有時(shí),您可能希望將多個(gè)中間件歸為一個(gè)鍵,以使其更易于分配給路由。 您可以使用 HTTP 內(nèi)核的 $middlewareGroups 屬性來(lái)實(shí)現(xiàn)。

Laravel 開(kāi)箱即用,帶有 webapi 中間件組,其中包含您可能要應(yīng)用于 Web UI 和 API 路由的通用中間件:

/**
 * 路由中間件組
 *
 * @var array
 */
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:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

中間件組可以使用與單個(gè)中間件相同的語(yǔ)法將自身分配給路由和控制器動(dòng)作。同樣,中間件組使得一次將多個(gè)中間件分配給一個(gè)路由更加方便:

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

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

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

技巧:RouteServiceProvider 默認(rèn)將 web 中間件組自動(dòng)應(yīng)用到 routes/web.php。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)