CakePHP $ this-> Auth-> user('id')在控制器中返回错误的用户

时间:2012-02-22 17:27:13

标签: cakephp authentication

我在一直在研究的CakePHP应用程序中发生了一个非常奇怪的错误。

我的users_controller.php中有以下方法,它读取当前已登录的用户并将数据发送到视图并将title_for_layout设置为用户名: -

function account() {
    $this->User->id = $this->Auth->user('id');
    $this->set('User', $this->User->read());
    $this->set('title_for_layout', 'Welcome '.$this->User->Contact->field('name'));
}

在我看来,我(其中包括): -

<?php echo $User['Contact']['name'] ?>

视图中的所有内容都很好看。它输出正确用户的字段(我当前登录的用户)。但是title_for_layout正在使用完全不同的用户详细信息。因此$this->User->Contact->field('name')$User['Contact']['name']不同!

我无法发现这里出了什么问题,所以希望有人可以指出我的错误。

1 个答案:

答案 0 :(得分:2)

模型read()只需执行find('first'),将结果设置为模型$data,然后返回。它没有设置关联模型的$id

因此,在您的情况下,$this->User->id已设置,但$this->User->Contact->id未设置。