How do I include header and footer with layout in Zend Framework?

て烟熏妆下的殇ゞ 提交于 2019-12-03 04:25:23

问题


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..


回答1:


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>



回答2:


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.




回答3:


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");



回答4:


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



来源:https://stackoverflow.com/questions/1627962/how-do-i-include-header-and-footer-with-layout-in-zend-framework

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!