1

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

在我的 UserIdentity 类中,我有这个,

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

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

提前致谢。

达南德兰·拉贾戈帕尔。

4

2 回答 2

0

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

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

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

于 2013-08-18T10:11:03.403 回答
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
于 2013-08-20T13:24:47.667 回答