我需要在会话中保留有关用户的一些细节。
public function authenticate()
{
$user=User::model()->findByAttributes(array('username'=>$this->username));
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$user->id;
$this->setState('username', $user->username);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
在示例中,我保存了用户名 - $this->setState('username', $user->username);
在我调用的主页面中第一次$username=Yii::app()->user->username;
我得到属性“CWebUser.username”没有定义。有没有办法为用户名和其他sessian变量设置deafult值。我需要知道正确的方法。仅添加$this->setState('username', "");
答案 0 :(得分:1)
尝试:
Yii::app()->user->getState('username', $default_val);
答案 1 :(得分:0)
是的,您可以使用
执行此操作$this->setState('username', "");
但您没有理由这样做,因为只有当用户提供了用户名时才会执行 else 子句。 如果要验证该用户是否为guest,请使用:
Yii::app()->user->isGuest