我正在使用Zend2中的可重用模块,我遇到了一个与代码重复有关的问题。
我有一个用户模块,它有一个HTML模板寄存器(模板路径:用户/用户/寄存器)。 它包含一些基本的HTML,但在我的一个项目中,我需要使用< div>用于CSS样式化(HTML页面的其余部分不会改变)。
在用户模块之后,我加载了我的应用程序模块,我可以覆盖用户/用户/注册模板并添加新代码,但我无法通过它呈现原始用户/用户/注册模板。
应用程序模块中的代码示例 - >用户/用户/注册:
<div><?=$this->render('user/user/register')?></div>
这会导致无限循环,我不想从用户模块中的用户/用户/注册模板中复制/粘贴所有HTML。
任何人都可以帮助我?
谢谢!
答案 0 :(得分:0)
你想要实现的目标是行不通的。您不能拥有两个名称相同的模板。加载最新密钥的模块将始终具有优先级。
您必须了解模板只是大数组中的一个键。
'view_manager' => array(
'template_map' => array(
'layout/layout' => 'my\layout.phtml'
)
)
因此,如果您有两个提供此配置的模块,则不会更改使用密钥layout/layout
的事实。因此,无论以后加载什么模块,都会获胜。
TL / DR 您只能覆盖模板,而不能扩展模板。在您的情况下,您必须创建一个单独的模板。