我可以在控制器中使用全局变量吗?

时间:2014-10-04 10:48:17

标签: php phalcon

您好我是Phalcon的新手,在控制器中遇到全局变量问题  我有一个带有全局变量$mobs的控制器,就是这样。

class ControllerBase extends Controller {
public $mobs;

public function initialize() {
    $user = $this -> session -> get("uid");
    $user = Users::findFirstByu_id($user);
    if ($user != null) {
        if ($user -> f_id != null) {
            $mobs = Mob::find(array("f_id=$user->f_id", "order" => "m_id"));
        }
    }
}
}
?>

根据我的理解,我可以设置它,并通过例如

的动作来调用它
public function mobsAction() {
  foreach ($mobs as $mob) {
    echo $mob->m_displayname;
  }
}

但这给了我一个Undefined variable: mobs error

我想知道是否可以使用这样的变量,或者我是否应该在每个动作中都使用初始化代码。

1 个答案:

答案 0 :(得分:0)

我猜你正在尝试在初始化函数中设置类变量$ mobs然后尝试在类函数mobsAction中迭代它们,以访问类变量怪物你需要使用$ this->小怪代替$ mobs,像这样:

class ControllerBase extends Controller {
  public $mobs;

  public function initialize() {
      $user = $this -> session -> get("uid");
      $user = Users::findFirstByu_id($user);
      if ($user != null) {
          if ($user -> f_id != null) {
              $this->mobs = Mob::find(array("f_id=$user->f_id", "order" => "m_id"));
          }
      }
  }

  public function mobsAction() {
    foreach ($this->mobs as $mob) {
      echo $mob->m_displayname;
    }
  }
}