CakePHP访问完整的用户信息

时间:2011-09-27 23:47:49

标签: php cakephp authentication

我是CakePHP的新手,我只是想知道是否有人能帮我做几件事。 我有一个User类和一个Image类。

在我的users_controller.php中,我有以下功能

function beforeFilter(){
    $this->userOb = $this->User->find();
}
function beforeRender(){
    $this->set('userOb', $this->userOb);
}

这很好用,我可以在视图中查看对象,并与Image类保持正确的关系。

但这样做会覆盖app_controller.php中的beforeFilter()和beforeRender()函数,所以我尝试将此功能移动到我的app_controller.php但是我收到错误(Undefined property:PagesController :: $ User)< / p>

此外,

$this->Auth->user();

似乎没有完整的对象图

$this->User->find();

回报。

所以,我想我的问题是如何创建一个在我的所有视图中都可以访问的变量,即在app_controller.php中定义的变量,它包含当前登录的Users对象及其关系。

感谢。

2 个答案:

答案 0 :(得分:1)

如果问题是你的父方法被子方法覆盖,只需调用子方法中的父方法,见下文:

function beforeFilter(){
    parent::beforeFilter();
    $this->userOb = $this->User->find();
}
function beforeRender(){
    parent::beforeRender();
    $this->set('userOb', $this->userOb);
}

答案 1 :(得分:1)

将您的查找结果放在SessionComponent中,这样您就不必对每个请求执行查询(并在beforeRender中设置变量)。在视图中,您可以使用SessionHelper访问它。 $这 - &GT; Auth-&gt;用户();只有用户记录。