我在Twig中经历一个循环:
{% for item in items %}
<div class="description">
Title: {{ item.name }}<br />
Price: {{ item.price }}
</div>
{% else %}
<p>...</p>
{% endfor %}
如果item.price为空,则会抛出异常。当某个值为空时,我不能简单地强制Twig给出“没有”吗?
或者,对于所有值,我是否始终需要{%if item.x%} {{item.x}} {%endif%}?
答案 0 :(得分:13)
您也可以尝试default
filter:
{{ item.price|default("nothing") }}
答案 1 :(得分:12)
转到config.yml并在其中设置以下内容:
twig:
strict_variables: false
答案 2 :(得分:5)
{% if item.price is defined and item.price not in [''] %}
{{ item.price }}
{% endif %}
应该做的伎俩,或者至少我过去如何处理它。我不是Twig专家:)
答案 3 :(得分:2)
这是我对这种情况的最短版本:
{{ item.price|default }}
default
- 过滤器的默认值为FALSE
,因此它不会输出任何内容而不会引发异常。