我有两个中间件:beforeCache& afterCache,两者都在Kernel上注册.
我想按顺序将它们称为路由:
1. beforeCache
2. myController
3. afterCache
如果我定义这样的路线:
Route::get('especies/{id}',[ 'middleware' => 'beforeCache','uses' => 'MyController@myMethod','middleware' => 'afterCache',]);
beforeCache不执行,因为afterCache重新定义了相同的数组键中间件.
我该怎么做?谢谢!
我假设你在这里使用5.1,但你所做的主要是尝试在路由上定义一个属性数组.方括号[]只是说数组(…)的简写版本.
原文链接:https://www.f2er.com/laravel/135183.html从文档(http://laravel.com/docs/5.1/middleware#defining-middleware)特别是中/前中间件,您只需要以某种方式返回.
对于Before中间件,您可以执行代码并在代码执行后返回下一个请求.
public function handle($request,Closure $next) { // Perform action return $next($request); }
对于After middleware,您可以处理剩余的请求,然后执行代码并最终返回响应.
public function handle($request,Closure $next) { $response = $next($request); // Perform action return $response; }
这条路线看起来像这样,
Route::get('especies/{id}',[ 'middleware' => [ 'beforeCache','afterCache' ],'uses' => 'MyController@myMethod' ]);