php – 如何在Zend_Application中使用多个视图(使用Zend_Layout)?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何在Zend_Application中使用多个视图(使用Zend_Layout)?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1793字,纯文字阅读大概需要3分钟。
内容图文
我有一个布局有4个单独的“块”.他们是:
>带有菜单和面包屑的导航面板.这是使用Zend_Navigation构造的.
>侧边栏,默认显示一般“新闻”
>内容区域,其中将放置每个控制器操作的主输出
>标题区域,位于导航上方,通常只显示一些库存文本和照片.
内容区域符合Zend_Application文档所述的传统单一视图模型,但其他三种模型不符合.它们都有合理的默认视图可供使用,但控制器需要能够在需要时覆盖它们.例如,管理页面覆盖“新闻”视图以显示系统上最近采取的管理操作的日志是有意义的.
然而,Zend_Layout / Zend_Application示例都假定单个视图(它们调用<?php echo $this-> layout() – > content;?>.
如何才能实现这种覆盖布局?我想到的唯一解决方案是在Zend_Registry中存储被覆盖的Zend_Views,但这看起来像是用胶带把东西放在一起;)
解决方法:
我相信你所指的是“命名段”. Zend Framework的响应对象支持这些所谓的“命名段”,并允许您将主体内容分成不同的段.
例如,采用以下布局文件:
<div id="nav">
<?php echo $this->layout()->nav ?>
</div>
<div id="content">
<?php echo $this->layout()->content ?>
</div>
这里有2个命名段,分别是“内容”和“导航”.默认情况下,视图脚本的输出将呈现为“内容”段.为了将输出呈现到“nav”段,您可以在控制器中执行以下操作:
<?php
$response = $this->getResponse();
$response->insert('nav', $view->render('nav.phtml'));
?>
与ActionStack操作助手一起使用时,此功能特别有用.例如,您处于管理页面,并且您想要覆盖“nav”部分,然后您可以确定每个控制器要将哪个部分渲染到该段.解释这个的最好方法是通过代码示例:
<?php
class PageController extends Zend_Controller_Action
{
public function barAction()
{
// this would render the output of NavController::menuAction()
// to the "nav" segment (note how we set the response segment in the
// NavController in order to do this)
$this->_helper->actionStack('menu', 'nav');
}
}
class NavController extends Zend_Controller_Action
{
public function menuAction()
{
$this->_helper->viewRenderer->setResponseSegment('nav');
// do stuff
}
}
?>
内容总结
以上是互联网集市为您收集整理的php – 如何在Zend_Application中使用多个视图(使用Zend_Layout)?全部内容,希望文章能够帮你解决php – 如何在Zend_Application中使用多个视图(使用Zend_Layout)?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。