我需要在我的页面中放置一个树枝模板,并在其中放置另一个树枝模板。
在page.twig中:
{% embed "parent.twig" %}
{% block something %}
{% include "child.twig" %}
{% endblock %}
{% endembed %}
在parent.twig中:
{% set array = ['', '', '']
%}
<div class="parent">
{% for i in array %}
<div class="parent__item">
{% block cardBoard %}
{% endblock %}
</div>
{% endfor %}
</div>
问题是该块在循环内时不起作用。我可以编辑所有我喜欢的page.twig,但我宁愿不更改parent.twig,如果可能,因为它被其他应用程序使用。
答案 0 :(得分:2)
为什么要在for循环中放置一个块?您不能使用相同名称定义2个块。 在您的情况下,它会尝试将其放入您的模板中3次:
<div class="parent__item">
{% block cardBoard %}
{% endblock %}
</div>
这将创建500服务器错误: 块'cardBoard'已被定义为''in:parent.twig at line''。“
如果你真的想要根据数组中的值来获取内容,请将块打开和关闭放在for循环之外。 像这样举例如:
{% set array = ['', '', '']%}
<div class="parent__item">
{% block cardBoards %}
{% for i in array %}
<div class="cardBoard{{ i }}>
</div>
{% endfor %}
{% endblock %}
</div>