我正在构建一个基于ZF2的站点,它有两种不同的布局。它有一些公共页面和一些需要用户身份验证的内部页面,每组页面都有自己的布局。我最初想创建一个控制器插件并检查用户是否有身份然后我将更改布局,但它也会更改登录用户的公共页面布局,这是我们不想要的。另外我不知道如何从控制器插件更改布局。
内部页面的布局还需要有关当前用户的一些信息以及来自其他表的一些其他信息。所以我想创建另一个插件,它将检查用户是否具有身份,并且它将设置布局变量。我不知道如何在控制器插件中获取布局对象来设置变量。也不知道如何让一个插件访问其他插件。
对于内部页面,如果用户已登录,我将检查每个操作。如果他没有身份,我会把他送到登录页面。这导致了许多重复的代码,所以有没有办法将此代码移动到控制器插件,以及如何告诉它检查用户在特定页面上的身份,如果用户有身份让他访问该页面,否则将他发送到登录屏幕。
答案 0 :(得分:1)
最终,这看起来像是你要编写的自定义LayoutModule。我假设你已经看过EdpModuleLayouts了吗?如果没有,请这样做。
这个模块基本上做的是:它检查当前的模块,然后检查是否在配置中附加布局模块。
你最终只需要这样,唯一的区别是你没有将布局附加到整个模块,但可能更确切地说是特定的路径。您可以查看当前的路线是什么,如果它是配置中附加了布局的路线,您将更改布局。