如果我的应用程序中有2个布局,如何将我的默认布局更改为某个控制器或操作的其他布局?
答案 0 :(得分:7)
$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');
然后它起作用了