ZF:布局的视图变量定义

问题描述

| 我有一些控制器索引。 我定义了变量:
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函数中定义它,但结果是相同的。 有人可以帮忙吗? 预先感谢所有人     

解决方法

        正如@Yanick Rochon所写的那样。另一种方法是将变量直接关联到您的layout(),例如
class IndexController extends Zend_Controller_Action
{
      function IndexController()
      {
           $this->view->layout()->some_val = 100;
      }
}
然后在您的布局中;
<p><?= $this->layout()->some_val; ?></p>
    ,        如果需要保存可重用变量,请使用use4ѭ视图助手
public function indexAction() {
    $this->view->placeholder(\'some_value\')->set(100);
}
并在任何视图脚本或布局中
echo $this->placeholder(\'some_value\')->getValue();   // -> 100