2

我正在构建一个基于 ZF2 的站点,它有 2 种不同的布局。它有一些公共页面和一些需要用户认证的内部页面,每组页面都有自己的布局。我最初想创建一个控制器插件并检查用户是否具有身份,然后我将更改布局,但它也会更改登录用户的公共页面的布局,这是我们不想要的。另外我不知道如何从控制器插件更改布局。

内部页面的布局还需要一些关于当前用户的信息以及来自其他表格的一些其他信息。所以我正在考虑创建另一个插件来检查用户是否有身份,然后它将设置布局变量。我不确定如何在控制器插件中获取布局对象来设置变量。也不知道如何让一个插件访问其他插件。

同样对于内部页面,如果用户登录或未登录,我会检查每个操作。如果他没有身份,我将他发送到登录页面。这导致了很多重复的代码,所以有没有办法将此代码移动到控制器插件,并以某种方式告诉它检查特定页面上的用户身份,如果用户有身份,让他访问该页面,否则让他登录屏幕。

4

1 回答 1

1

最终,这看起来像是您要编写的自定义 LayoutModule。我假设您已经看过EdpModuleLayouts 了?如果没有,请这样做。

这个模块的基本作用是:它检查当前模块,然后检查配置中是否为这个模块附加了一个布局。

您最终只需要它,唯一的区别是您不将布局附加到整个模块,而是可能会附加到特定的路由。您将检查当前Route是什么,如果它是在您的Configuration中附加了Layout的 Route ,您将更改布局。

于 2013-09-26T06:50:01.603 回答