每次刷新未更新YII用户标识?

每次刷新未更新YII用户标识?,yii,Yii,我有: 问题是,每次刷新页面时都需要更新此getBalance值。但它目前只在用户第一次登录时才这样做。如果用户被禁止,并且已经登录,我也会遇到同样的问题 我该怎么做?换句话说,我如何在用户每次重新加载页面时强制刷新存储的用户状态 以下是设置实际用户的代码: 公共函数身份验证() { 覆盖WebUser类中的init()函数。 比如: $api = new api(); $user = $api->getAccountDetailsByCellNr($this->username);

我有:

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

我该怎么做?换句话说,我如何在用户每次重新加载页面时强制刷新存储的用户状态

以下是设置实际用户的代码:

公共函数身份验证() {

覆盖WebUser类中的
init()
函数。 比如:

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

  }

}

您没有显示实际设置平衡的代码。这很重要。为什么不在会话中保持平衡并在主布局中更新它?webUser是在页面刷新时启动的?我不确定您的问题是什么意思?
$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);

  }

}
class WebUser extends CWebUser {
  ...
  public function init()
  {
    parent::init();
    $user = $api->getAccountDetailsByCellNr($this->username);
    $this->_balance = $user->balance;
  }
}