根据Rob Allen's tutorial:要在我的zend应用程序中使用布局,我应该:
$response = $this->getResponse();
$response->insert('header', $this->view->render('header.phtml'));
$response->insert('sidebar', $this->view->render('sidebar.phtml'));
$response->insert('footer', $this->view->render('footer.phtml'));
进入IndexController的init()函数,为每个动作生成页眉,页脚和侧边栏。 我想对我的所有视图使用相同的布局,我应该将这部分代码放入所有控制器吗? (我正在使用ZF 1.11)
感谢。
答案 0 :(得分:1)
您所指的博客文章已有近5年历史,绝不代表ZF 1.11的当前状态,您应该使用official Zend_Layout documentation或Robs ZF1 tutorial
答案 1 :(得分:1)
您可以通过在引导程序中执行以下操作来初始化zend布局:
Zend_Layout::startMvc();
您还可以指定保留布局的位置
$layout = Zend_Layout::getMvcInstance();
$layout->setLayoutPath(__PATH_TO_LAYOUT_FOLDER_);
一旦到位,它将比在所有控制器中渲染相同的视图更有效。
答案 2 :(得分:0)
您需要布局默认设置。您可以在模板布局中调用它。 Zend Framework文档更好地展示了它: http://framework.zend.com/manual/en/zend.layout.quickstart.html
答案 3 :(得分:0)
application.ini
添加此行 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
此路径的默认布局将命名为layout.phtml
。
如果您想更改路径或默认布局,可能需要在application.ini
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.layout.layout = master
在这种情况下,默认布局为master.phtml
。
从默认布局更改为备用布局就像添加:
一样简单public function preDispatch() {
$this->_helper->layout->setLayout('admin');
}
到需要新布局的控制器,可以添加逻辑,以便替代布局仅应用于某些操作。