ZF:查看布局的变量定义

时间:2011-05-28 03:35:21

标签: php model-view-controller zend-framework layout controller

我有一些控制器索引。 我在那里定义了变量:

class IndexController extends Zend_Controller_Action
{
      function IndexController()
      {
           $this->view->some_val = 100;
      }
}

布局是这样的:

<html>
<p><?= $this->some_val; ?></p>
<?= $this->getLayout()->content; ?>
</html>

但在这种情况下我得到NULL而不是100.我试图在preDispatch函数中定义它,但结果是相同的。 有人可以帮忙吗? 感谢所有提前

2 个答案:

答案 0 :(得分:2)

如果您需要保存可重复使用的变量,请使用placeholder视图助手

public function indexAction() {
    $this->view->placeholder('some_value')->set(100);
}

以及任何视图脚本或布局

echo $this->placeholder('some_value')->getValue();   // -> 100

答案 1 :(得分:2)

正如@Yanick Rochon写的那样。另一种方法是将变量直接分配给你的布局(),例如

class IndexController extends Zend_Controller_Action
{
      function IndexController()
      {
           $this->view->layout()->some_val = 100;
      }
}

然后在你的布局中;

<p><?= $this->layout()->some_val; ?></p>