我刚刚创建了AcmeHelloBundle,所以我已经生成了这个模板:
Hello {{ name }}!
现在,我只想修改包含“Hello John!”的页面标题。因此,作为第一次尝试,我编辑base.twig.html并使用“foobar”更改“欢迎”,但标题不会改变..
所以最后改变标题我这样做:
{% extends '::base.html.twig' %}
{% block body %}
Hello {{ name }}!
{% endblock %}
尽管这个代码工作正常(标题中的更改正确显示),与我的第一次尝试相关我想知道模板如何扩展base.html.twig但是没有显示我的更改做就好了..
哈维
答案 0 :(得分:0)
以下模板不会扩展任何其他模板:
Hello {{ name }}!
这就是您无法看到基本模板更改的原因。
您必须显式扩展模板(使用 extends 语句)。就像你在第二段代码中所做的那样:
{% extends '::base.html.twig' %}
{% block body %}
Hello {{ name }}!
{% endblock %}
这里没有魔力。 Twig会做你告诉它做的任何事情。
由于您是明确的,并且幕后没有任何特殊情况,因此您不仅限于一个基本模板。您可以灵活地按照自己的方式组织模板。
在Symfony文档的Templating章节中了解更多相关信息。关于three level inheritance的部分解释了组织模板的良好做法。