symfony2:关于扩展模板

时间:2011-12-23 17:40:40

标签: templates symfony

我刚刚创建了AcmeHelloBundle,所以我已经生成了这个模板:

Hello {{ name }}!

现在,我只想修改包含“Hello John!”的页面标题。因此,作为第一次尝试,我编辑base.twig.html并使用“foobar”更改“欢迎”,但标题不会改变..

所以最后改变标题我这样做:

 {% extends '::base.html.twig' %}

 {% block body %}
     Hello {{ name }}!
 {% endblock %}

尽管这个代码工作正常(标题中的更改正确显示),与我的第一次尝试相关我想知道模板如何扩展base.html.twig但是没有显示我的更改做就好了..

哈维

1 个答案:

答案 0 :(得分:0)

以下模板不会扩展任何其他模板:

Hello {{ name }}!

这就是您无法看到基本模板更改的原因。

您必须显式扩展模板(使用 extends 语句)。就像你在第二段代码中所做的那样:

{% extends '::base.html.twig' %}

{% block body %}
    Hello {{ name }}!
{% endblock %}

这里没有魔力。 Twig会做你告诉它做的任何事情。

由于您是明确的,并且幕后没有任何特殊情况,因此您不仅限于一个基本模板。您可以灵活地按照自己的方式组织模板。

在Symfony文档的Templating章节中了解更多相关信息。关于three level inheritance的部分解释了组织模板的良好做法。