保存用户的上次注销

时间:2012-02-13 18:52:09

标签: yii

我正在尝试将用户的上次注销时间保存到Yii框架中的数据库中。 我有WebUser:

<?php

// this file must be stored in:
// protected/components/WebUser.php

class WebUser extends CWebUser {



    public function afterLogout()

    {
        $user=user::Model();
        $user->logOutDateTime='TEST';
        $user->saveAttributes(array('logOutDateTime'));
        parent::afterLogout();  
    }

}
?>

并在config \ main.php中我有这些行

// application components
'components'=>array(
    'user'=>array(
        // enable cookie-based authentication
            'class'=>'WebUser',
            'allowAutoLogin'=>true,

    )

现在我已经将logOutDateTime数据类型设置为varchar,以进行测试,并且我假设每次用户注销时,都应该将'TEST'写入数据库,但它什么都不做。 我哪里出错了?

2 个答案:

答案 0 :(得分:2)

我认为afterLogout()仍然没有Yii :: app() - &gt;用户设置,所以我会做类似(未经测试)的事情:

public function beforeLogout()
{
    if (parent::beforeLogout()) {
        $user = User::model()->findByPk(Yii::app()->user->id); // assuming you have getId() mapped to id column
        $user->logOutDateTime='TEST';
        $user->saveAttributes(array('logOutDateTime'));
        return true;
    } else {
        return false;
    }
}

答案 1 :(得分:1)

$user = user::Model();

应该是:

$user = user::Model()->find(/* model_conditions */);