Twig 如何检查数组中是否存在任何值?

16

我该如何检查数组是否提供了任何值。在PHP中,我是这样向数组添加元素的:

$myArray['index1'] = $someVal1;
$myArray['index2'] = $someVal2;

问题是,当我在Twig中使用|length筛选器时,它会在$someVal1或$someVal2没有值时给出结果(这些值来自表单,因此不必填写)。因此,我想检查整个数组中是否未提供值,因此:

{% if myArray|what_filter_here? == 0|empty|whatever %} This text should not appear {% endif %}

能否在一个条件中完成?

2个回答

29

类似于:

{% if myArray|length > 0 %}
    This text should not appear 
{% endif %}

1
这应该是正确的答案。这也是Symfony框架的开发者在他们的代码中使用的。 - cezar
@cezar,你为什么认为“is empty”不是正确的答案? - simPod
@simPod 我并没有明确说“为空”不是正确的答案。对于这个答案,我已经给出了解释,并且我认为最好遵循框架创建者使用的约定。虽然我同意“为空”的可读性更好,但更冗长。 - cezar
@cezar 怎么会呢?无论值是否为空,数组计数仍然是相同的吧? - Brett

21
尝试使用empty -
{% if myArray is empty %} ... {% endif %}

这是一个更好的答案,因为长度取决于传递对象实现可计数接口,因此上述方法似乎更加健壮。 - Andrew HB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接