我想在设置变量时包含模板。如果未设置变量,则不得包含模板。
{% if data is defined %}
{% block content %}
{% include 'data.html.twig' with { 'data' : data} %} {# Line 14 #}
{% endblock %}
{% endif %}
但这项检查不起作用。如果未定义data
,则会发生错误:
Twig_Error_Runtime: Variable "data" does not exist in "text.html.twig" at line 14
但是在定义data
时,Twig必须跳过该行。谁能解释这种行为,更重要的是:我该如何解决这个问题?
答案 0 :(得分:11)
感谢我的室友,我找到了解决方案。 if
必须位于block
。我仍然不知道为什么这是必需的。
{% block content %}
{% if data is defined %}
{% include 'data.html.twig' with { 'data' : data} %} {# Line 14 #}
{% endif %}
{% endblock %}