我有这种结构:
layout.twig:
{% include header.twig %}
{% block block1 %}
{% endblock %}
header.twig:
{% block block2 %}
{% endblock %}
index.twig:
{% extends "layout.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}
当我正在渲染index.twig时,block1被替换为文本值,正如预期的那样,但是block2仍为空。为什么block2不会被重新声明的内容取代? TWIG的共同点是否正确,或者只是Yii Framework的TWIG实现问题?我应该如何更改结构以使其按照描述工作?
提前致谢)
答案 0 :(得分:0)
这只是因为结构,通常的方法是在布局中有一个根块,并覆盖模板中的一些块。
layout.twig:
{% block body %}
{% block block2 %}
{% include header.twig %}
{% endblock %}
{% block block1 %}default text for block 1
{% endblock %}
{% endblock %}
header.twig:
default text for block 2
index.twig:
{% 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