在插件中,我尝试$ this-&gt; view-&gt; menu = $ menu; ,但在视图中我尝试<?php var_dump($this->menu); ?
&gt;得到NULL
也许解决方案是将变量从插件传递到视图?
答案 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());