1

在插件中我尝试 $this->view->menu = $menu; ,但鉴于我尝试<?php var_dump($this->menu); ?> 并得到NULL

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

4

1 回答 1

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());
于 2013-07-30T09:39:09.087 回答