在我的项目中,我有许多动态元素,它们在每个页面上都是一致的。我已将这些放入我的layout.phtml中
我的问题是:如何从控制器将变量发送到布局中?
如果我想从我的控制器发送东西,我可以使用:
$this->view->whatever = "foo";
并在视图中接收它
echo $this->whatever;
我不知道如何对我的布局进行同样的操作。也许有更好的方法来解决这个问题?
布局is一个视图,所以赋值变量的方法是一样的。在您的示例中,如果您要在布局中 echo $this->whatever,您应该看到相同的输出。
一个常见的问题是如何将每个页面上使用的变量分配给布局,因为您不希望在每个控制器操作中重复代码。解决此问题的一种方法是创建一个插件,在渲染布局之前分配此数据。例如。:
<?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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)