我知道如何使用多个布局(每个控制器和每个模块)。
我有 5 种不同的布局,每次我调用不同的模块时它们都可以正常切换。但问题是我看到它们都有一些通用代码(如文档类型、样式表等)
你能告诉我 Zend 是否允许使用多个布局但为它们设置公共根?现在,如果我想添加样式表,我需要修改 5 种不同的布局,我相信可以以更好的方式完成。
提前致谢。
我知道如何使用多个布局(每个控制器和每个模块)。
我有 5 种不同的布局,每次我调用不同的模块时它们都可以正常切换。但问题是我看到它们都有一些通用代码(如文档类型、样式表等)
你能告诉我 Zend 是否允许使用多个布局但为它们设置公共根?现在,如果我想添加样式表,我需要修改 5 种不同的布局,我相信可以以更好的方式完成。
提前致谢。
我通常创建一个包装布局,用子布局呈现内容。
create as many sublayouts as you need with one default so you don't have to set it if you don't need to.
/application /layouts wrapper.phtml /sublayouts default.phtml
In wrapper.phtml:
$sublayout = $this->layout()->sublayout ? $this->layout()->sublayout : 'default';
echo $this->render('sublayouts/' . $sublayout . '.phtml');
In sublayouts/default.phtml (add anything):
<?= $this->layout()->content ?>
有用于这些情况的视图助手。 headScript和headLink。
在您的布局中,您需要做的就是
echo $this->headScript(), $this->headStyle();
然后,在您的引导程序中添加:
public function _initScriptsAndStyles()
{
//get the view object
$this->bootstrap('view');
$view = $this->getResource('view');
//add javascript
$view->headScript()
->appendFile('/js/your-js.js')
->appendFile('/js/another-js.js');
//add css files
$view->headLink()
->appendStylesheet('/styles/basic.css');
}