【问题标题】:How do you implement composite views in Zend?在 Zend 中如何实现复合视图?
【发布时间】:2011-05-30 21:53:22
【问题描述】:

我想知道 - 如何在 Zend 中实现复合视图。也就是说,我可以在一页上有多个视图和控制器吗?我知道您可以使用布局并将一个控制器的内容注入到布局中,但是无论如何可以将多个控制器注入到特定的布局中?

提前致谢。

【问题讨论】:

    标签: model-view-controller zend-framework view


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-20
      • 2011-05-23
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      相关资源
      最近更新 更多