2013-11-08 3 views
0

Мне нужно держать в секрете некоторые сведения о пользователе.Как установить значение по умолчанию переменной сеанса в yii?

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; я получил Property «CWebUser.username» не определен. Есть ли способ установить значение deafult для имени пользователя и других sessian-переменных. Мне нужно знать правильный способ сделать это. Будет ли это право добавлять только $this->setState('username', "");

ответ

1

Try:

Yii::app()->user->getState('username', $default_val); 
+0

Где разместить этот код? – user2632980

+0

Вместо кода '$ username = Yii :: app() -> user-> username;' – CreatoR

0

Да, вы можете сделать это с

$this->setState('username', "");

, но у вас нет причин, чтобы сделать это, потому что ваше предложение else выполняется только тогда, когда создается пользователь с предоставленным именем пользователя. Если вы хотите подтвердить, что пользователь гость, используйте:

Yii::app()->user->isGuest
Смежные вопросы