代码之家  ›  专栏  ›  技术社区  ›  Alekc

如何在ZF视图中重用方法

  •  1
  • Alekc  · 技术社区  · 15 年前

    在我的应用程序中,我有以下3列的经典模板

    *********************************************************
    *                                                       *
    *                                                       *
    *********************************************************
    *        *                               *              *
    *        *                               *              *
    * sidea  *         content               *    sideb     *
    *        *                               *              *
    *        *                               *              *
    *        *                               *              *
    *        *                               *              *
    *        *                               *              *
    *        *                               *              *
    *********************************************************
    *                                                       *
    *                                                       *
    *********************************************************
    

    如果站点的大部分区域的标题和边栏相似(B侧内容取决于用户的状态,因此需要动态呈现),并且每个控制器的边栏和内容都会发生变化。

    由于我不熟悉ZF(1.9),所以实现这种设置有一些困难,在这种设置中,脚本视图重用通用方法(用于侧边栏),动态内容注入有3个不同的位置。有人能提示任何教程/代码示例吗?

    事先谢谢。

    编辑

    在更深入地阅读Zend_布局文档和其他一些链接(即 this post )我发现我应该集中研究Zend框架的复合视图模式,特别是Zend-View-Helper-Partial。可能下面的两个链接可以帮我(和其他人搜索相同的东西)

    Link 1 Link 2

    4 回复  |  直到 15 年前
        1
  •  2
  •   Neel    15 年前

    看起来你需要一个布局。看看 Zend_Layout 文件页,看看是否达到你想要的。

    看看这个 webinar 有关Zend_布局的可能信息

        2
  •  1
  •   piddl0r    15 年前

    视图帮助器对于重用的函数很有用。

    http://framework.zend.com/manual/en/zend.view.helpers.html

        3
  •  1
  •   Goran Jurić    15 年前

    仅将视图脚本用于呈现页面内容。

    使用Zend_布局渲染页面的其余部分,并从布局调用视图帮助器来填充左侧和右侧边栏。

    如果“sidea”绑定到当前操作/控制器,则可以从“操作”视图脚本呈现它们,并从布局调用“sideb”视图帮助器。

    当然,您可以将视图脚本的不同部分呈现到不同的响应段,并使用布局文件将响应段放在您想要的位置。

    转发到多个控制器/操作是因为alekc对应用程序的性能产生了巨大的影响,在这种情况下是完全不必要的。

        4
  •  0
  •   Tim Lytle    15 年前

    我会重复一下,你要找的是一个布局。使用布局,可以让控制器将视图呈现到不同的“内容”区域。

    结合这一点和将一个控制器“转发”到另一个控制器的功能,请求的主控制器可以将一个视图(或多个视图)呈现到内容占位符中,然后转发到呈现(如果需要)侧栏/页眉/页脚的控制器。

    对于这样的观点 不要 需要这些元素(比如文章控制器的“打印”操作),您只需禁用布局,并正常呈现视图(不需要转发到其他控制器)。