Yii::app()->;用户->;id没有返回空结果


Yii::app()->user->id is not returning the empty result

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

在我的UserIdentity类中,我有这个

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

我正在authenticate()函数中设置id。如果我自己显示在那里,它显示的是id,但不是在getId()函数中。请帮我一下。

提前谢谢。

Dhanendran Rajagopal。

像这样重构getId()函数!

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

当您在标识中设置用户状态时,就会出现此问题。您尝试设置状态,然后获取属性!

不确定您是否使用标准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