获得最后登录时间在Yii框架


Getting last login time in Yii Framework

我是Yii框架的新手。我在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;
    }
}

现在我必须在视图文件中调用idlastlogin,以便我可以获得最后登录时间。所以我在视图文件中使用了这段代码。

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

在所有的更改之后,我得到的错误如下:

Property "CWebUser.lastLoginTime" is not defined. 

你可以试试:

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;

你只需要在用户登录时在视图中写入

回声Yii:应用()->用户-> lastLoginTime;

试一试!

不能直接访问通过setState()赋值的变量

如果你使用setState(),你必须使用getState()来获得它:

UserIdentity

$this->setState('lastLoginTime', $user->lastLoginTime);
<<p> 视图/strong>
Yii::app()->user->getState('lastLoginTime');

或者您可以添加一个私有属性,如$_id,并以相同的方式使用它。

这可能听起来很傻,而且都是本着"你试过再次打开和关闭它吗?"的精神,但是根据这条评论,你试过再次注销和登录吗?我怀疑这个变化还没有影响到你的会话,这就是为什么CWebUser.lastLoginTime还不能访问。参见cweuser .__get()的详细信息。