我想做这个代码块暗示的内容:
{% if load_base %}
{% extends "base.html" %}
{% endif %}
因此,如果load_base不正确,我根本不需要任何扩展。此模板中只有一个内容块,我希望打印的内容就像从未包含{%extends%}行一样。
我确实在文档中看到了conditional inheritance,但这仍然要求我制作一个看似黑客的空模板文件。有没有更好的办法呢?
答案 0 :(得分:0)
你不能。创建空模板也不起作用。扩展模板仅修改具有相同名称的块。
有例子: http://twigfiddle.com/hx5a0e
{# main.twig #}
{% extends "base.twig" %}
{% block a %}a{% endblock %}
{% block b %}b{% endblock %}
,
{# base.twig #}
{% block a %}{% endblock %}
main.twig
的输出始终为a
。阻止b
块的内容,因为它不在基本模板中。所以"什么都不延伸"没有意义,因为根本就没有输出。
您必须编写简单的模板,除了块定义以外,只需按正确的顺序排列。