Zend将变量从插件传递到视图

时间:2013-07-30 07:12:30

标签: zend-framework plugins

在插件中,我尝试$ this-&gt; view-&gt; menu = $ menu; ,但在视图中我尝试<?php var_dump($this->menu); ?&gt;得到NULL

也许解决方案是将变量从插件传递到视图?

1 个答案:

答案 0 :(得分:1)

你可以使用如下

首先:不使用帮助器或插件:

Zend_Layout::getMvcInstance()->assign('whatever', 'foo');

在此之后,您可以在布局中使用以下内容:

<?php echo $this->layout()->whatever; ?>

这将打印“foo”。

第二名:

<?php

class My_Layout_Plugin extends Zend_Controller_Plugin_Abstract
{
   public function preDispatch(Zend_Controller_Request_Abstract $request)
   {
      $layout = Zend_Layout::getMvcInstance();
      $view = $layout->getView();

      $view->whatever = 'foo';
   }
}

然后使用前端控制器注册此插件,例如

Zend_Controller_Front::getInstance()->registerPlugin(new My_Layout_Plugin());