[Laravel 7.x] Middleware 執行順序

最近我遇到一個問題,我有一個 middleware 想在 auth middleware 之前執行,但在 route 或 controller 不管怎麼調整前後順序還是一直失敗,Laravel 說什麼都要先執行 auth middleware 才會執行我的 middleware。

原來在 Illuminate\Foundation\Http\Kernel 裡面有定義一個變數叫 $middlewarePriority,用來決定 middleware 的執行優先順序,所以我們可以把他複製到 App\Http\Kernel 並且調整他,把我自己的 middleware 加在 auth middleware 之前,如此一來就可以達成想要的結果囉。
Laravel Middleware 執行順序

留言