问题
一个路由需要用到多个中间件,其中一个是 Laravel 自带的 auth
中间件。
发现这个中间件不管放在哪里,总是在自定义中间件之前执行。
如果业务需要自定义中间在 auth
之前执行,还是有办法的。
解决方案
观察定义中间件的 app\Http\Kernel
类,是继承的 Illuminate\Foundation\Http\Kernel
类。
再打开 Illuminate\Foundation\Http\Kernel
,发现有这样一个数组
...
/**
* The priority-sorted list of middleware.
*
* Forces the listed middleware to always be in the given order.
*
* @var array
*/
protected $middlewarePriority = [
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate