在 Zend 中如何实现复合视图?
Posted
技术标签:
【中文标题】在 Zend 中如何实现复合视图?【英文标题】:How do you implement composite views in Zend? 【发布时间】:2011-05-30 21:53:22 【问题描述】:我想知道 - 如何在 Zend 中实现复合视图。也就是说,我可以在一页上有多个视图和控制器吗?我知道您可以使用布局并将一个控制器的内容注入到布局中,但是无论如何可以将多个控制器注入到特定的布局中?
提前致谢。
【问题讨论】:
【参考方案1】:我不认为你可以在一个布局中使用多个控制器,有更多经验的人可能会纠正我。
我看不出你有任何理由想要这样做!
您可以使用$this->partial()
视图助手添加部分视图,也可以添加您自己的视图助手以将内容添加到您的布局中。如果需要,您没有理由不能直接在视图中访问模型,只要它们只是为了显示目的而读取数据。我以这种方式实现了侧边栏、登录表单和导航菜单,没有任何问题。
我希望这会有所帮助。
亲切的问候
加里
【讨论】:
嗯……有this helper,但我们不敢说它的名字。不过,Partials 和视图助手是可行的方法。 view action helper 很糟糕,没错,还有 action stack 的思维方式,但是一些***者拒绝回答试图解释为什么 actionStack 没有那么糟糕的答案。 ActionStack 使 dispatchLoop 和插件操作更容易理解。恕我直言,我认为 ActionStack 很好,因为很容易将其转换为 ESI 门或 ajax 模式组合,但似乎社区现在正在烧毁旧工具。 是的,我同意,我可能会坚持使用自定义视图助手。谢谢【参考方案2】:TestController.php
public function testAction()
$this-view->test = 'hi';
test.phtml
<?php
echo $this->test;
?>
layout.phtml
$this->layout()->test = $this->action('testAction','TestController')
echo $this->layout()->test;
更多信息请查看 Apress.Pro.Zend.Framework.Techniques.Build.a.Full.CMS.Project
【讨论】:
以上是关于在 Zend 中如何实现复合视图?的主要内容,如果未能解决你的问题,请参考以下文章
Zend Framework中如何实现MySQL的读写分离 - PHP框架开发
如何在 Zend Framework 2 中为局部使用共享视图脚本路径?
Zend Framework 1 - 如何在功能集成测试中重置视图数据,而不是会话数据?