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

 

 控制器方法例子:

 

posted @ 2020-02-23 22:06  一个人的孤独自白  阅读(1094)  评论(0编辑  收藏  举报