我相信这只是一个简单的一行代码,但我似乎找不到它。
如何为特定操作使用不同的布局文件?
更新:这对我有用,谢谢!
// Within controller
$this->_helper->_layout->setLayout('other-layout') //other-layout.phtml
//Within view script
<?php $this->layout()->setLayout('other-layout'); ?>
我相信这只是一个简单的一行代码,但我似乎找不到它。
如何为特定操作使用不同的布局文件?
更新:这对我有用,谢谢!
// Within controller
$this->_helper->_layout->setLayout('other-layout') //other-layout.phtml
//Within view script
<?php $this->layout()->setLayout('other-layout'); ?>
在控制器内部:
$this->_helper->layout->setLayout('/path/to/your/layout_script');
(通过这些文档)
编辑:我应该提到路径是相对于您的布局目录的(默认情况下,它是application/layouts/scripts/
)
layoutpath
被正确设置了(例如 $layout->setLayoutPath('application/layouts/scripts')
),可以使用 $this->_helper_layout->setLayout('alternative_layout')
来引用 application/layouts/scripts/alternative_layout.phtml
。 - chelmertz$layout->setLayoutPath(APPLICATION_PATH . 'layouts/scripts');
- Zachary Schuessler你也可以像这样使用
// Within controller
Zend_Layout::getMvcInstance()->setLayout('layout_name');
//Within view script
<?php $this->layout()->setLayout('layout_name'); ?>
你的布局必须在/layouts/scripts/文件夹中,否则你需要指定路径。不需要写 .phtml,只需命名布局。
_helper_layout
吗?应该是_helper->layout
。 - MitMaro