Yii :: app() - > user-> id未返回空结果

时间:2013-08-17 07:44:13

标签: php yii

我有一个问题,它可能是一个小问题,但我无法找到解决方案。 Yii:app() - > user-> getId()或Yii:app() - > user-> id不返回值。它只是返回空结果。但我在我的UserIdentity类中设置了id。

在我的UserIdentity类中我就是这个,

public function getId()
{
   return $this->id;
}

我在authenticticate()函数中设置了id。如果我在那里显示它显示id,但不在getId()函数中。请帮助我。

提前致谢。

Dhanendran Rajagopal。

2 个答案:

答案 0 :(得分:0)

像这样重构你的getId()函数!

public function getId(){
    return $this->getState('id');
}

当您在Identity中设置用户状态时,就会开始此问题。您尝试设置状态,然后获取属性!

答案 1 :(得分:0)

不确定您是否使用标准的UserIdentity类,但在标准的id中是一个私有属性,在Yii约定中,私有属性在它们前面有_,所以它就像这样:

public function getId()
{
    return $this->_id;
}

由于它是私有变量,因此无法使用Yii::app()->user->_id访问它。 getId()函数是一个神奇的函数,当您运行Yii::app()->user->id时,它会看到没有id属性,因此查找名为getId()的函数并运行它(如果存在)。

如果您使用的是标准课程,则需要按照以下评论中的说明进行更改:

$this->_id = $user->user_id //underscore added before id