我的视图view.twig
扩展了template_child.twig
,后者又扩展了template_base.twig
:
我希望能够将每个块嵌套在另一个块中,而不创建仅在扩展template_child
时才能工作的“sub_content”块。因此view.twig
可以扩展任一模板,而无需重命名块指令。
view.tig :
{% extends "template_child.twig" %}
{% block content %}
Stuff that should go in "content"
{% endblock content %}
template_child.tig :
{% extends "template_base.twig" %}
{% block content %}
<div id="styling-of-content">
{% block content %}
{% endblock content %}
</div>
Stuff that absolutely needs to be after "content"
{% endblock content %}
template_base.tig :
<html><body>
{% block content %}
{% endblock content %}
</body></html>
当前Twig在尝试运行此代码时输出此错误:
块'content'已经在Y行的“template_child.twig”中定义了第X行
使用Twig v1.12.3
答案 0 :(得分:2)
自从Twig在纯PHP类和方法中编译模板以来,这是不可能的。在PHP中,子方法总是能够覆盖父方法。
解决方案是使用view.twig中定义的sub_content块,该块包含在“template_child.twig”的内容块中。