如何在 Zend Framework 中的布局中包含页眉和页脚?

发布于 2024-08-08 22:47:07 字数 158 浏览 9 评论 0原文

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

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

I would like to let Zend_Layout include header.phtml and footer.phtml with [layouy name].phtml.

How do I do that? I tried to read codes in Zend_Layout, Zend_Layout_Controller_Plugin_Layout. I still can't figure out it..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

黄昏下泛黄的笔记 2024-08-15 22:47:07

您可以在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>

You could include your header and footer files from within your layout.phtml file. Here's an example:

<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>
淡笑忘祈一世凡恋 2024-08-15 22:47:07

cballou 的答案可能就是你想要的,但我想我应该把它放在那里作为一个很好的衡量标准。如果您想在站点的不同部分呈现单独的页眉和页脚视图脚本,您可以在每个控制器中执行此操作,如下所示:

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

然后使用 $this->header 从布局中拉出呈现的页眉。页脚也是如此。

cballou's answer is likely what you want, but I thought I'd throw this in there for good measure. If you'd like to render separate header and footer view scripts in different parts of your site, you can do it from within each controller like so:

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

Then use $this->header to pull the rendered header from within your layout. Likewise with the footer.

带上头具痛哭 2024-08-15 22:47:07

另一种方式:

这将进入控制器:

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

这将进入视图:

include($this->header); 

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

include("header.phtml");

Just another way:

This will go in the controller:

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

This will go in the view:

include($this->header); 

Even if we do not use the controller (but only in the view) we can use:

include("header.phtml");
戏剧牡丹亭 2024-08-15 22:47:07

我意识到这个问题已经有 4 年历史了,但是对于那些遇到这个问题并且没有意识到有更好的方法使用最新的 ZF2 来做到这一点的人来说,这是“更好的方法” - Zend Framework 2 - 如何包含库中的部分内容

I realize this question posed is 4 yrs old but for those who happen upon this and don't realize there's a better way to do this with the latest ZF2, here's the 'better way' - Zend Framework 2 - How to include partial from library

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文