laravel中多个中间件的疑问

在tipask中查看源代码时发现其路由定义没怎么看懂,问下各位朋友:
这是路由代码:

Route::Group(['prefix'=>'admin','namespace'=>'Admin','middleware' =>['auth','auth.admin']],function(){

这里有个疑问:

  1. laravel中多个中间件定义是不是意味着在这里要经过'auth'和'auth.admin'两个中间件?是在中间件'auth’满足了后进入第二个'auth.admin'中间件还是两个同时审核?还是?

有点困惑,希望各位朋友能指点一二。

阅读 8.9k
2 个回答

恩, 是要经过两个中间件.
laravel实现了管道机制, 即上一个中间件的输出是下一个中间件的输入. 所以是先后顺序执行的.

是,同意楼上。路由中间件是先经过auth过滤下请求,再通过auth.admin中间件过滤请求,传输通道是\Illuminate\Pipeline\Pipeline中send(),through(),then()这几个方法实现。关于中间件可以参考下这篇:Laravel学习笔记之Middleware源码解析

推荐问题
宣传栏