zend框架布局

时间:2012-03-21 20:25:14

标签: zend-framework layout

根据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)

感谢。

4 个答案:

答案 0 :(得分:1)

您所指的博客文章已有近5年历史,绝不代表ZF 1.11的当前状态,您应该使用official Zend_Layout documentationRobs 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');
    }

到需要新布局的控制器,可以添加逻辑,以便替代布局仅应用于某些操作。