访问登录用户AuthComponent :: user()

时间:2012-07-04 07:14:33

标签: cakephp cakephp-2.0

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#accessing-the-logged-in-user

有人可以帮助我理解这一点。

AuthComponent::user()方法只返回有关用户的一些基本信息,而不是实际的User对象本身。

来自rails,我习惯了一个满载的current_user对象

如果我想要类似的东西,我应该做一个

$this->User->id = AuthComponent::user('id')

并使用它?或者是否已经有我可以使用的内置方法。

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您在链接文档中向下滚动一下,您将看到从CakePHP 2.2开始,您现在可以在Auth设置中使用Containable,因此您可以执行以下操作:

public $components = array(
    'Auth' => array(
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email'),
                'contain' => array('RelatedModel', 'RelatedModel')
            )
        )
    )
);

答案 1 :(得分:0)

我最终做了类似这样的事情

# load current_user
$this->loadModel('User');
$this->User->id = AuthComponent::user('id');
$user = $this->User->read();
$this->set('current_user',$user);