Laravel 5 documentation描述了两种分配中间件的方法:
- 将中间件分配给 Controller 的路由。
- 在 Controller 的构造函数中指定中间件。
但是,我意识到在 Controller __construct()
函数中编写的任何代码都将在 Middleware 之前运行,即使 Middleware 是在 Controller 的 __construct
函数的第一行声明。
我找到了一个 bug report对于 Laravel github 存储库中的类似问题。然而,合作者关闭了这个问题,指出“这是预期的行为。”。
我认为 middleware
应该是应用程序之外的“层”,而 __construct
函数是应用程序的一部分。
为什么 __construct
函数在中间件之前执行(假设它是在中间件运行之前声明的)?为什么这是预期的?
最佳答案
涵盖该问题的另一个用例的另一个答案
如果与中间件之间的顺序有关
You can update the $middlewarePriority in your App\Kernel.
关于php - 如何设置 Laravel 中间件的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31065936/