加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel 5:进入路线之前和之后的中间件

发布时间:2020-12-14 19:46:05 所属栏目:大数据 来源:网络整理
导读:我有两个中间件:beforeCache afterCache,两者都在Kernel上注册. 我想按顺序将它们称为路由: 1. beforeCache 2. myController 3. afterCache 如果我定义这样的路线: Route::get('especies/{id}',[ 'middleware' = 'beforeCache','uses' = 'MyController@my
我有两个中间件:beforeCache& afterCache,两者都在Kernel上注册.

我想按顺序将它们称为路由:
1. beforeCache
2. myController
3. afterCache

如果我定义这样的路线:

Route::get('especies/{id}',[
    'middleware' => 'beforeCache','uses' => 'MyController@myMethod','middleware' => 'afterCache',]);

beforeCache不执行,因为afterCache重新定义了相同的数组键中间件.

我该怎么做?谢谢!

我假设你在这里使用5.1,但你所做的主要是尝试在路由上定义一个属性数组.方括号[]只是说数组(…)的简写版本.

从文档(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'
]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读