0

(a) 一个包(包 1)包含主要的父 Twig 模板。

(b) 另一个包(包 2)包含一个控制器负载,这些控制器每个都呈现该包(包 2)内的 Twig 模板。该模板也从上面提到的主要父模板(捆绑 1)扩展而来。硬编码到主父模板的绝对路径很好。

(c) 父模板(在包 1 内)还嵌入/包含另一个模板,该模板存储在另一个包(包 2)中。

我可以为上面的 (c) 部分设置一个相对路径,以便如果我创建另一个包(包 3)它会自动工作(父模板包括调用它的包中的模板)?它会选择主父节点,因为它是绝对路径,但它会选择上面的 (c) 部分吗?显然,我不能为父模板嵌入/包含的模板使用绝对路径。

4

1 回答 1

0

如果我理解正确,您是在问如何轻松扩展模板,同时具有从一个捆绑包到另一个捆绑包的依赖关系。

我建议您阅读有关覆盖捆绑模板的文档。

阅读本文后,您会注意到一个指向 [捆绑继承文档] 的链接。

例如,我们有 3 个具有明确名称的包: - GenericSiteBundle - GenericUserBundle - SpecificSiteBundle

我们想为一个应用程序创建一个可以被其他应用程序使用的通用结构,我们也希望它们不同,因此我们需要能够更改布局(页眉、页脚、列等)。

模板结构类似于GenericUserBundle:Security:login.html.twigextends GenericSiteBundle:Layout:simple.html.twig

您希望用特定的布局更改简单的布局;您需要做的就是声明GenericSiteBundleSpecificSiteBundle和 create的父级SpecificSiteBundle:Layout:simple.html.twig。确保只有包名称不同,否则将无法在子包中找到模板。

此外,您会喜欢这个parent() 树枝函数。它允许您获取父块的内容并将其添加到子块中。

这不是您想要做的,而是处理继承的正确方法。

于 2013-03-16T21:56:13.583 回答