W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
假設(shè)你想為指定的路由分配中間件 , 首先應(yīng)該在 app/Http/Kernel.php
文件內(nèi)為該中間件分配一個(gè)鍵。默認(rèn)情況下,該類中的 $routeMiddleware
屬性下包含了 Laravel 內(nèi)置的中間件。若要加入自定義的中間件,只需把它附加到列表后并為其分配一個(gè)自定義鍵。例如:
// Within App\Http\Kernel Class...
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
在 HTTP 內(nèi)核中定義了中間件后,您可以使用 middleware
方法將中間件分配給路由:
Route::get('admin/profile', function () {
//
})->middleware('auth');
您還可以將多個(gè)中間件分配給路由:
Route::get('/', function () {
//
})->middleware('first', 'second');
分配中間件時(shí),您還可以傳遞完全限定的類名:
use App\Http\Middleware\CheckAge;
Route::get('admin/profile', function () {
//
})->middleware(CheckAge::class);
將中間件分配給一組路由時(shí),有時(shí)可能需要阻止將中間件應(yīng)用于該組中的單個(gè)路由。 您可以使用 withoutMiddleware
方法完成此操作:
use App\Http\Middleware\CheckAge;
Route::middleware([CheckAge::class])->group(function () {
Route::get('/', function () {
//
});
Route::get('admin/profile', function () {
//
})->withoutMiddleware([CheckAge::class]);
});
withoutMiddleware
方法只能刪除路由中間件,不適用于 全局中間件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: