TWIG YII如何从包含的文件重新声明块
我有这样的结构: layout.twig:TWIG YII如何从包含的文件重新声明块,yii,twig,Yii,Twig,我有这样的结构: layout.twig: {% include header.twig %} {% block block1 %} {% endblock %} {% block body %} {% block block2 %} {% include header.twig %} {% endblock %} {% block block1 %}default text for block 1 {% endblock %} {% endblock %} he
{% include header.twig %}
{% block block1 %}
{% endblock %}
{% block body %}
{% block block2 %}
{% include header.twig %}
{% endblock %}
{% block block1 %}default text for block 1
{% endblock %}
{% endblock %}
header.twig:
{% block block2 %}
{% endblock %}
default text for block 2
index.twig:
{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}
{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}
当我渲染index.twig时,block1将按预期替换为文本值,但block2仍为空。为什么block2没有被重新声明的内容所取代?这对于普通的TWIG是正确的,还是仅仅针对Yii框架实现TWIG是一个问题?我应该如何更改结构以使其按所述方式工作
提前感谢这只是因为结构,通常的方法是在布局中有一个根块,并覆盖模板中的一些块 layout.twig:
{% include header.twig %}
{% block block1 %}
{% endblock %}
{% block body %}
{% block block2 %}
{% include header.twig %}
{% endblock %}
{% block block1 %}default text for block 1
{% endblock %}
{% endblock %}
header.twig:
{% block block2 %}
{% endblock %}
default text for block 2
index.twig:
{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}
{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}
输出:
text for block 1
text for block 2
这是正常的行为。看这里