Cake 2.X如何刷新每个动作的会话

时间:2017-04-26 13:24:45

标签: php cakephp

CakePhp 2.X中有没有办法在页面的每个开头用数据库中的数据刷新用户的会话?

目前,如果用户位于 UsersController中

,我只能使其正常工作
public function beforeRender($user = null){
    parent::beforeRender($user);
    if(AuthComponent::user()){
        $info = $this->User->findById( $this->Auth->User('id'));
        $this->Auth->login( $info['User']);
    }
}

但我不清楚如何通过整个站点自动执行此操作,因为User对象仅存在于我的UsersController中。

我是cakePhp的新手,很抱歉,如果我错过了一些概念。

2 个答案:

答案 0 :(得分:1)

我将此函数移动到AppController(所有控制器都应该继承),这将在每个页面生命周期中触发

答案 1 :(得分:1)

将逻辑移至beforeRender的{​​{1}}回调,并记住确保您已加载要查询的AppController模型: -

User

另请注意,public function beforeRender() { parent::beforeRender(); if (AuthComponent::user()) { $this->loadModel('User'); $info = $this->User->findById( $this->Auth->User('id')); $this->Auth->login($info['User']); } } 方法不带参数。