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的新手,很抱歉,如果我错过了一些概念。
答案 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']);
}
}
方法不带参数。