yii2 在控制器重写 beforeAction() 方法时,behaviors 失效的原因

behaviors失效,behaviors执行不在控制器前的原因:

在重写 beforeAction() 时,没有调用父类的 beforeAction(), 所以定义的 behaviors() 的就没有达到自己想要的效果

修改方法:

    public function beforeAction($action)
    {
        retrun parent::beforeAction($action);
    }
//页面缓存
    public function behaviors(){
        return [
            [
                'class' => 'yii\filters\PageCache',
                'duration' => 86400,//时间设置,0为无限时间
                //'only' =>['index'], //规定缓存哪一个,默认为全部
                 'variations' => [  // 根据语言的不同,生成多个缓存
                     \Yii::$app->language,
                      \Yii::$app->request->get('pageCache'),
                 ],
                'enabled' => true
            ]
        ];
    }

修改组件配置文件 /common/config/main.php

 控制器方法例子:

猜你喜欢

转载自www.cnblogs.com/-mrl/p/12354659.html
今日推荐