我试过阅读这里发现的问题:Module configuration and layout configuration in zend framework它被描述为我需要知道的关于布局的一切 - 但是 - 我担心我发现它有点难以理解。
我有很多Zend控制器:
class FirstController extends Zend_Controller_Action {
public function init() { /* stuff */ }
public function indexAction() { /* stuff */ }
public function indexBrowse() { /* stuff */ }
}
class SecondController extends Zend_Controller_Action {
// stuff
}
class ThirdController extends Zend_Controller_Action {
// stuff
}
我需要他们进行以下安排。
按照目前的情况,我在view/script/<actionname>.phtml
档http://framework.zend.com/manual/en/zend.layout.quickstart.html
有更多信息,但我无法找到将这一切带回家的关键信息。
从上面的第一个文档中我猜测以下内容会进入我的application.ini
文件
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
但我希望创建一个名为“Layouts”的文件夹,还是应该使用某种views/common
文件夹?该文件是否被称为layout.php
?
然后,在layout.php
我内部,我正确理解
<div id="content"><?php echo $this->layout()->content ?></div>
会呈现单个操作的PHTML
文件吗?和
public function anotherAction() {
$this->_helper->layout->setLayout('foobaz');
}
是否会使整个操作使用不同的布局文件(布局文件夹中的一个名为'foobaz.php')?
感谢您抽出时间为我解决这个问题。
答案 0 :(得分:2)
是的,你没事,
$this->_helper->layout->setLayout('foobaz');
应该使用不同的布局呈现页面,只需在layout() - &gt;内容占位符中输出视图内容。
另一种方式是使用单一布局,并使用partials来加载不同的标头。
在你的行动中你可以拥有
public function indexAction() {
$layout = $this->_helper->layout();
$layout->assign('header', 'header_file_name');
}
然后在你的布局中你可以这样做
<div id="header">
<?php echo $this->partial($this->layout()->header);?>
</div>
这可能是最重要的。