3

我想制作一个带有侧边栏的布局,该侧边栏可以包含来自不同模块的小部件。假设如果用户未登录,则顶部始终会有一个登录小部件,然后它将显示用户信息。入门专辑指南可以使用它来显示最新专辑等,希望您了解我想如何使用侧边栏。

是否可以通过自动加载中的配置文件和读取该配置并在每个页面加载时调用小部件的小代码来完成?

4

1 回答 1

0

Zend Framework 2 中有几种页面组合方式:

1. 布局之间的切换

默认情况下,ZF2 为您提供单个布局模板layout.phtml。在现实生活中的应用程序中,您可能需要有多个布局并为某些控制器/动作切换布局。在您的每个布局中,您将能够显示不同的小部件/侧边栏。

2. 局部视图

部分视图是一个.phtml视图模板文件,可以由另一个视图模板呈现。部分视图允许组成您的页面并在不同的视图模板中重用视图渲染逻辑。这是通过Partial视图助手完成的。

3.占位符视图助手

Placeholder是另一个有用的视图助手,允许捕获 HTML 内容并将其存储以供以后使用。因此,类似于Partial 视图助手,它允许将您的页面组合成多个部分。

4.前向控制器插件

使用Forward控制器插件,您可以从控制器的另一个模块/控制器调用动作(例如,渲染某些小部件的动作)并获取该动作的输出。然后,您可以将该输出合并到您的页面中。

5. 使用视图模型进行页面组合

当您为控制器类编写操作方法时,您将ViewModel 类用作变量容器,用于将变量从控制器传递到视图模板,并覆盖默认的视图模板名称。但是,实际上ViewModel该类不仅仅是一个变量容器加上视图模板名称。事实上,它与布局和页面构成密切相关。

视图模型类的第三大功能是它允许多个视图模型组合成树状结构。树中的每个视图模型都有关联的视图模板名称和数据变量,可以传递给视图模板以控制渲染过程。

Zend Framework 2 在“组合”布局视图模板和与控制器的操作方法关联的视图模板时在内部使用此功能。ZF2 在内部为布局模板创建视图模型并为其分配layout/layout视图模板名称。当控制器的操作方法返回ViewModel对象时,该对象作为子对象附加到布局视图模型。

因此,您可以将自己的视图模型附加到默认视图模型以呈现您想要的页面。

于 2014-01-28T03:31:50.887 回答