我在UserIdentity类中添加了getId方法来获取用户ID而不是用户名,但是它不会获取用户ID。添加此getId方法后,以下两项都将为空
1. Yii::app()->user->getId();
2. Yii::app()->user->id;
我在这里发布了UserIdentity类,请帮助解决此问题
class UserIdentity extends CUserIdentity
{
private $_id;
public function authenticate()
{
$users= User::model()->findByAttributes(array('name'=>$this->name));
$password= User::model()->findByAttributes(array('password'=>$this->password));
if($users===null) {
$this->errorCode = self::ERROR_USERNAME_INVALID;
}
else if($password===null) {
$this->errorCode = self::ERROR_PASSWORD_INVALID;
}
else {
$this->_id=$users->id;
$this->errorCode = self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
}
我试图使用CDbCriteria从用户模型获取ID,它仅获取usename列,id列将为空
最佳答案
这是适合您的情况的好解决方案:
检查以下步骤:
http://www.yiiframework.com/wiki/80/add-information-to-yii-app-user-by-extending-cwebuser-better-version/
完成此步骤后,只需调用以下命令:
Yii::app()->user->id;
Yii::app()->user->name;
Yii::app()->user->email;
关于php - 如何在Yii框架中获取用户ID而不是名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21949885/