檢測到 Laravel 中間件但未執行 (Laravel middleware detected but not executed)


問題描述

檢測到 Laravel 中間件但未執行 (Laravel middleware detected but not executed)

我有一個中間件,當在 Kernel.php 中定義為全局中間件時,它工作正常。但是,我希望它只應用於特定的路由,所以我這樣做:

Route::group(['prefix' => 'myapi/', 'middleware' => 'api'], function(){

});

Calling php artisan route:list 表明中間件被正確檢測到。但是,它沒有被執行(我知道這一點,因為即使故意在文件中放置錯誤也不會做任何事情)。

...
protected $middlewareGroups = [
    ...
    'api' => [
        'throttle:60,1',
        \App\Http\Middleware\CORSMiddleware::class,
    ],
];

當中間件設置為全局時,它不會被 路線:列表</代碼>。此外,故意在 routes.php 中指定錯誤的中間件名稱不會引發任何錯誤。

編輯:日誌顯示中間件已針對所有 GET 資源路由執行,但不針對 POST/PUT/DELETE。


參考解法

方法 1:

I believe middleware has to be placed inside an array when adding it to a group ‑ that will cause it to trigger and give you the expected result:

Route::group(['prefix' => 'myapi/', 'middleware' => ['api']], function(){

});

(by user5365075jayrav13)

參考文件

  1. Laravel middleware detected but not executed (CC BY‑SA 2.5/3.0/4.0)

#laravel-middleware #Laravel #Middleware






相關問題

使用中間件進行表操作 laravel 5.1 (Using middleware for table manipulation laravel 5.1)

Laravel 中間件“僅”為每條路線觸發 (Laravel middlware 'only' fires for every route)

在 laravel 5.1 中檢查管理員角色 (Checking admin roles in laravel 5.1)

在laravel 5中使用中間件重定向循環 (redirect loop with middleware in laravel 5)

Laravel - 中間件後清空 $request (Laravel - Empty $request after middleware)

$request->user()->role 錯誤 - 試圖獲取非對象的屬性 ($request->user()->role errror - trying to get property of non-object)

檢測到 Laravel 中間件但未執行 (Laravel middleware detected but not executed)

將 Auth 中間件應用於所有 Laravel 路由 (Apply Auth Middleware to All Laravel Routes)

路由組內的功能 [laravel-passport] (Function inside route group [laravel-passport])

當我嘗試訪問主頁時,Laravel 不會重定向到登錄頁面 (Laravel does not redirect to login page when I try to access to home page)

控制器沒有來自中間件的更改請求 (Controller doesnt have the alter request from the middleware)

訂閱者中間件路由允許公眾查看所有受限頁面 (Subscriber middleware route allowing public to view all restricted pages)







留言討論