Twig 细枝不会替换子模板中的块

Twig 细枝不会替换子模板中的块,twig,Twig,我有一个简单的设置。包含一些{%block…%}元素的父模板和定义这些元素的子模板 奇怪的是(对于初学者来说),没有识别出{%block…%}元素 守则: {# main.twig #} Hello {% block greeting %}{% endblock %} {% block body %}{% endblock %} 这已经不起作用了 下面是一个(不起作用)确切问题的示例: 在示例中,我还添加了第三个级别: {# child_extend.twig #} {% extend

我有一个简单的设置。包含一些{%block…%}元素的父模板和定义这些元素的子模板

奇怪的是(对于初学者来说),没有识别出{%block…%}元素

守则:

{# main.twig #}

Hello {% block greeting %}{% endblock %}

{% block body %}{% endblock %}
这已经不起作用了

下面是一个(不起作用)确切问题的示例:

在示例中,我还添加了第三个级别:

{# child_extend.twig #}

{% extends "child.twig" %}

{% block footer %}Footer text{% endblock %}
正如您在示例中所看到的,没有{%block…%}获得输出

当然,我希望所有的块都被替换并显示在相应的模板中

我肯定错过了一些显而易见的东西


提前感谢您的帮助。

在您的twigfiddle中,检查要测试的文件作为主模板

如果要测试
child.twig
,请将其作为主模板

另一个问题是块脚不是主文件,它不会出现在主文件中

您可以将其放在主文件中,也可以这样做:

{# child.twig #}

{% extends "main.twig" %}

{% block greeting %}friend{% endblock %}

{% block body %}Some text
{% block footer %}{% endblock %}
{% endblock %}
只是举个例子,最好将块页脚放在主文件中,只填写文件
child\u extend.twig

{# main.twig #}

Hello {% block greeting %}{% endblock %}

{% block body %}{% endblock %}
{% block footer %}{% endblock %}

-------------------------------
{# child.twig #}

{% extends "main.twig" %}

{% block greeting %}friend{% endblock %}

{% block body %}Some text{% endblock %}

-------------------------------
{# child_extend.twig #}

{% extends "child.twig" %}

{% block footer %}Footer text{% endblock %}

刚刚编辑了我的文章以插入示例代码。另外,最初我认为只有一个块得到输出。但是没有人被认出。编辑以澄清这一点。谢谢。我现在明白了Twigfidle“主模板”背后的想法。由于这个例子,页脚错误逐渐出现了。谢谢你指出这一点。这个例子现在起作用了。因为我使用的是Symfony 4,所以可能在某个地方出现了一个错误,导致无法包含这些块。如果有必要,我会再看一遍,然后再问一个问题。非常感谢。
{# main.twig #}

Hello {% block greeting %}{% endblock %}

{% block body %}{% endblock %}
{% block footer %}{% endblock %}

-------------------------------
{# child.twig #}

{% extends "main.twig" %}

{% block greeting %}friend{% endblock %}

{% block body %}Some text{% endblock %}

-------------------------------
{# child_extend.twig #}

{% extends "child.twig" %}

{% block footer %}Footer text{% endblock %}