0

我有:

class WebUser extends CWebUser {
  private $_balance;
  public function getBalance()          { return $this->_balance; }
}

问题是,每次刷新页面时都需要更新这个 getBalance 值。但它目前只在用户第一次登录时这样做。如果用户被禁止并且他已经登录,我将遇到同样的问题。

我该如何解决这个问题?换句话说,每次用户重新加载页面时,如何强制刷新存储的用户状态?

这是设置实际用户的代码:

公共功能验证(){

$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);

  }

}
4

1 回答 1

1

覆盖init()WebUser 类中的函数。就像是:

class WebUser extends CWebUser {
  ...
  public function init()
  {
    parent::init();
    $user = $api->getAccountDetailsByCellNr($this->username);
    $this->_balance = $user->balance;
  }
}
于 2012-12-02T16:00:14.720 回答