你好,我是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
我想知道是否可以使用这样的变量,或者我是否应该在每个操作中都有初始化代码。
我猜你试图在initialize函数中设置类变量$mobs,然后在类函数mobsAction中尝试迭代它们,要访问类变量mobs,你需要使用$this->mobs而不是$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;
}
}
}