Получение последнего времени входа в Yii Framework - PullRequest
0 голосов
/ 29 декабря 2011

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

[Обновление]

Я перешел по этой ссылке иЯ сделал код 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. Так что я использовал этот код впросмотреть файл.

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

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

Property "CWebUser.lastLoginTime" is not defined. 

Ответы [ 4 ]

3 голосов
/ 29 декабря 2011

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

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 голосов
/ 27 ноября 2013

Это может звучать глупо и все в духе "вы пытались включить и выключить его снова?", Но согласно этому комментарию , вы пытались выйти из системы и войти снова? Я подозреваю, что изменения не повлияли на вашу сессию, поэтому к CWebUser.lastLoginTime пока нельзя получить доступ. Смотрите также подробности CWebUser .__ get () .

0 голосов
/ 27 ноября 2013

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

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

UserIdentity

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

view

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

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

0 голосов
/ 02 января 2012

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

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

попробуй!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...