2

我知道如何使用多个布局(每个控制器和每个模块)。

我有 5 种不同的布局,每次我调用不同的模块时它们都可以正常切换。但问题是我看到它们都有一些通用代码(如文档类型、样式表等)

你能告诉我 Zend 是否允许使用多个布局但为它们设置公共根?现在,如果我想添加样式表,我需要修改 5 种不同的布局,我相信可以以更好的方式完成。

提前致谢。

4

2 回答 2

1

我通常创建一个包装布局,用子布局呈现内容。

  1. 在名为 sublayouts 的布局中创建一个新文件夹
  2. 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 ?>
于 2012-08-02T23:17:54.493 回答
0

有用于这些情况的视图助手。 headScriptheadLink

在您的布局中,您需要做的就是

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');
}
于 2012-08-02T15:15:51.427 回答