我有:
class WebUser extends CWebUser {
private $_balance;
public function getBalance() { return $this->_balance; }
}
问题是,每次刷新页面时都需要更新此getBalance值。但它目前仅在用户第一次登录时执行此操作。如果用户被禁止,我将遇到同样的问题,并且他已经登录。
我如何解决这个问题?换句话说,每次用户重新加载页面时,如何强制刷新存储的用户状态?
以下是设置实际用户的代码:
public function authenticate() {
$api = new api();
$user = $api->getAccountDetailsByCellNr($this->username);
if (empty($user)) {
$this->errorCode = self::ERROR_USERNAME_INVALID;
}
else {
if(!isset($this->username))
$this->errorCode = self::ERROR_USERNAME_INVALID;
else if($user->password !== md5($this->password) )
$this->errorCode = self::ERROR_PASSWORD_INVALID;
else {
$this->errorCode = self::ERROR_NONE;
$this->setState('balance', $user->balance);
}
}
答案 0 :(得分:1)
覆盖WebUser类中的init()
函数。
类似的东西:
class WebUser extends CWebUser {
...
public function init()
{
parent::init();
$user = $api->getAccountDetailsByCellNr($this->username);
$this->_balance = $user->balance;
}
}