Twig不会替换子模板中的块

时间:2019-08-31 05:39:55

标签: twig

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

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

代码:

{# main.twig #}

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

{% block body %}{% endblock %}
{# child.twig #}

{% extends "main.twig" %}

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

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

{% block footer %}{% endblock %}

这已经不起作用

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

https://twigfiddle.com/p2i0ix

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

{# child_extend.twig #}

{% extends "child.twig" %}

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

如示例所示,没有{%block ...%}得到输出。

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

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

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在您的小树枝中,检查要测试的文件作为主模板。

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

另一个问题是块脚不是主文件,因此不会出现。

您可以将其放在主文件中,也可以执行以下操作:

{# child.twig #}

{% extends "main.twig" %}

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

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

仅用于示例,最好将块页脚放在主文件中,仅填充文件child_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 %}