17

我想让 Zend_Layout 包含 header.phtml 和 footer.phtml 以及 [layouy name].phtml。

我怎么做?我试图阅读 Zend_Layout、Zend_Layout_Controller_Plugin_Layout 中的代码。我还是想不通。。

4

4 回答 4

24

您可以在 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>
于 2009-10-27T00:04:55.517 回答
7

cballou 的答案可能是你想要的,但我想我会把它扔在那里。如果您想在站点的不同部分呈现单独的页眉和页脚视图脚本,您可以在每个控制器中执行此操作,如下所示:

Zend_Loader::loadClass('Zend_View');
$header = new Zend_View();
//Set header variables here
$this->view->header = $header->render('header.phtml');

然后使用 $this->header 从布局中拉出渲染的标题。页脚也是如此。

于 2009-10-27T00:11:44.863 回答
2

只是另一种方式:

这将进入控制器:

$this->view->header = "header.phtml";

这将出现在视图中:

include($this->header); 

即使我们不使用控制器(但仅在视图中),我们也可以使用:

include("header.phtml");
于 2011-02-07T00:34:18.463 回答
1

我意识到提出的这个问题已经 4 岁了,但是对于那些遇到这个问题并且没有意识到使用最新的 ZF2 有更好的方法来做到这一点的人,这里是“更好的方法” - Zend Framework 2 - How to include partial from library

于 2013-11-05T20:28:14.113 回答