【问题标题】:Zend Framework 2: create sidebarZend Framework 2:创建侧边栏
【发布时间】:2013-11-04 23:49:55
【问题描述】:

我试图了解如何为每个模块生成具有不同内容的侧边栏代码。

这是我的 layout.phtml(模块/应用程序/视图/布局)

....
<div class="main-container">
    <aside>
      <?php echo $this->sidebar; ?> 
    </aside>
    <section>
    <?php echo $this->content; ?>
    </section>
</div>
....

根据我很少的经验,我可以猜到 $this->content 是所选模块的输出,那么如何为每个模块创建一个 $this->sidebar?

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    你没有。好吧,这有点刻薄,所以让我给你一些解释。

    在 Zend Framework 2 中,强烈建议使用 ViewHelpers。创建 ViewHelper 非常简单。 ViewHelper 的任务应该很简单!这意味着,每当您创建 ViewHelper 时,它都应该有一个非常简单的任务,例如“显示当前登录用户的用户名”。

    在您的情况下,您需要一个“侧边栏”。虽然这本身是一个非常有效的问题,但您应该重新考虑一下:什么是边栏?侧边栏是小部件的集合。小部件是 ViewHelper!因此,您的侧边栏将是 ViewHelpers 的集合!

    方法 1 - 建议

    创建许多专用的 ViewHelper,然后在 layout.phtml 中像这样显示侧边栏

    <div id="sidebar">
        <h2>My Account</h2>
        <div class="widget_content">
            <?php echo $this->userMiniProfile();?>
        </div>
        <h2>My Calendar</h2>
        <div class="widget_content">
            <?php echo $this->userCalendar();?>
        </div>
        <h2>My Foo</h2>
        <div class="widget_content">
            <?php echo $this->bar();?>
        </div>
    </div>
    

    方法 2 - 仅当您有动态侧边栏时才需要

    创建一个名为 sidebar 的 ViewHelper 并像这样显示它:

    <div id="sidebar">
        <?php echo $this->sidebar();?>
    </div>
    

    通过此设置,您的 viewHelper 将拥有一些依赖项,用于检查当前登录的用户,从数据库加载侧边栏,然后根据服务结果呈现不同的小部件。

    基础知识

    要创建简单的 ViewHelper,请参阅 this link sponsored by Evan Courya deeper introduction sponsored by Michael Gallego

    【讨论】:

    • 谢谢!非常好的解释和非常有用的链接!
    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 2020-10-26
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多