我正在尝试将用户的上次注销时间保存到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'
写入数据库,但它什么都不做。
我哪里出错了?
答案 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 */);