我开始在经过身份验证的用户和来宾用户之间创建差异。但总是当我识别用户并成功登录时,当我使用 Yii::app()->user->isGuest 时它仍然返回 true。这是我正在使用的代码:
if (Yii::app()->user->isGuest){
echo 'Welcome back Guest';
} else {
echo 'Welcome back '.Yii::app()->user->name;
}
无论我是否(成功)登录,我总是得到“欢迎回来的客人”。如果我再次登录,我会收到此消息。这是用户识别代码。
class UserIdentity extends CUserIdentity {
/**
* Authenticates a user.
*/
private $_id;
public function authenticate() {
$user = Users::model()->findByAttributes(array('username' => $this->username));
if ($user === null)
$this->errorCode = self::ERROR_USERNAME_INVALID;
else if ($user->password !== $this->password)
$this->errorCode = self::ERROR_PASSWORD_INVALID;
else {
$this->_id = $user->id;
$this->setState('title', $this->username);
$this->setState('id', $user->id);
$this->errorCode = self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId() {
return $this->_id;
}
}
请帮助我摆脱这个问题。