2011-12-29 4 views
0

Я новичок в Yii framework. Я задал этот вопрос на форуме Yii, но не получил хорошего результата, поэтому я пришел сюда. На самом деле, я хочу показать последнее введенное время, когда администратор войдет в систему. Он доступен в пользовательском модуле Yii. Итак, как это сделать. Возможно ли получить это время от пользовательского модуля до индексной страницы. Любая помощь и предложения будут очень заметными.Получение последнего времени входа в Yii Framework

[Update]

Я последовал this link, и я сделал UserIdentity код, как это в соответствии с инструкцией:

class UserIdentity extends CUserIdentity 
{ 
    private $_id; 

    public function authenticate() 
    { 
     $user=User::model()->findByAttributes(array('username'=>$this->username)); 
     if($user===null) 
      $this->errorCode=self::ERROR_USERNAME_INVALID; 
     else if($user->password!==md5($this->password)) 
      $this->errorCode=self::ERROR_PASSWORD_INVALID; 
     else 
     { 
      $this->_id=$user->id; 
      $this->setState('lastLoginTime', $user->lastLoginTime); 
      $this->errorCode=self::ERROR_NONE; 
     } 
     return !$this->errorCode; 
    } 

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

Теперь я должен позвонить id и lastlogin в файл представления, так что я могу получить lastlogin time.Io я использовал этот код в файле вида.

<?php echo Yii::app()->user->name;?> 
<?php echo Yii::app()->user->lastLoginTime;?> 

После всех изменений, которые я получил ошибку, как:

Property "CWebUser.lastLoginTime" is not defined. 

ответ

3

Вы можете попробовать это:

Yii::app()->user->last_login = $usermodel->last_login; 
$usermodel->last_login = time(); 

echo "welcome back - your last login was at:".Yii::app()->user->last_login; 
+0

Я сделал это в файле вида, но он показал что-то такое, как эта ошибка Parse: ошибка синтаксиса, неожиданный T_VARIABLE. – NewUser

0

вам нужно просто написать, что на ваш взгляд, когда пользователь регистрируется

echo Yii :: app() -> user-> lastLoginTime;

попробуйте!

0

Вы не можете получить доступ к переменным, присвоенных через setState() непосредственно

Если вы используете setState() вы должны использовать getState(), чтобы получить его:

UserIdentity

$this->setState('lastLoginTime', $user->lastLoginTime); 

вид

Yii::app()->user->getState('lastLoginTime'); 

или вы можете добавить еще одну приватную собственность, такую ​​как $_id и использовать ее таким же образом. (я рекомендую!)

+0

Это вздор. 'CWebUser' переписывает метод' __set() 'таким образом, что содержимое сеанса также проверяется. – DaSourcerer

0

Это может показаться глупым и быть в духе «вы попробовали включить и выключить его снова?», но, согласно this comment, вы пробовали выйти и снова? Я подозреваю, что изменение еще не повлияло на вашу сессию, поэтому у CWebUser.lastLoginTime пока нет доступа. См. Также подробную информацию о CWebUser.__get().

Смежные вопросы