如何在zend框架中切换到其他布局?

时间:2010-02-03 21:03:50

标签: zend-framework zend-layout

如果我的应用程序中有2个布局,如何将我的默认布局更改为某个控制器或操作的其他布局?

3 个答案:

答案 0 :(得分:7)

robertbasic的回答是正确的。您还可以在控制器操作中执行以下操作:

$this->_helper->layout->setLayout('otherlayout');

答案 1 :(得分:2)

你走了:

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

其中otherlayout是第二个布局的名称(布局文件夹中的otherlayout.phtml)。

答案 2 :(得分:1)

我认为,最好使用

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');
在您的视图中

而不是使用

$this->_helper->layout->setLayout('otherlayout');

来自控制器。

后一种方法有一个bug。我有过一次经历 我用了

$this->_helper->layout->setLayout('otherlayout');

并且新布局显示在旧布局中。 我用了

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

然后它起作用了