我想让 Zend_Layout 包含 header.phtml 和 footer.phtml 以及 [layouy name].phtml。
我怎么做?我试图阅读 Zend_Layout、Zend_Layout_Controller_Plugin_Layout 中的代码。我还是想不通。。
我想让 Zend_Layout 包含 header.phtml 和 footer.phtml 以及 [layouy name].phtml。
我怎么做?我试图阅读 Zend_Layout、Zend_Layout_Controller_Plugin_Layout 中的代码。我还是想不通。。
您可以在 layout.phtml 文件中包含页眉和页脚文件。这是一个例子:
<div id="header"><?= $this->render('layouts/header.phtml') ?></div>
<div id="nav"><?= $this->render('layouts/nav.phtml') ?></div>
<div id="content"><?= $this->layout()->content ?></div>
<div id="footer"><?= $this->render('layouts/footer.phtml') ?></div>
cballou 的答案可能是你想要的,但我想我会把它扔在那里。如果您想在站点的不同部分呈现单独的页眉和页脚视图脚本,您可以在每个控制器中执行此操作,如下所示:
Zend_Loader::loadClass('Zend_View');
$header = new Zend_View();
//Set header variables here
$this->view->header = $header->render('header.phtml');
然后使用 $this->header 从布局中拉出渲染的标题。页脚也是如此。
只是另一种方式:
这将进入控制器:
$this->view->header = "header.phtml";
这将出现在视图中:
include($this->header);
即使我们不使用控制器(但仅在视图中),我们也可以使用:
include("header.phtml");
我意识到提出的这个问题已经 4 岁了,但是对于那些遇到这个问题并且没有意识到使用最新的 ZF2 有更好的方法来做到这一点的人,这里是“更好的方法” - Zend Framework 2 - How to include partial from library