5

我正在处理一个模板,我需要检查某个东西是否是一个数组。我如何在 Twig 中做到这一点?

我试过了

{% if my_var is iterable %}
  {% for v in my_var %}
      ...
  {% endfor %}
{% else %}
  {{ my_var }}
{% endif %}

但它总是打印 my_var,即使 my_var 真的是一个数组,正如它打印出来时所证明的那样

Array
Array
myusername
../data/table.sqlite3
4

3 回答 3

4

Another way :

{% if my_var.count()>1 %}
于 2013-10-31T09:13:24.490 回答
3

只需添加一个自定义过滤器:

$twig->addFilter('is_array', new \Twig_Filter_Function('is_array'));

然后像这样使用它:

{% if my_var|is_array %}
于 2014-08-07T14:39:17.190 回答
3

如果您不想创建自定义过滤器iterable,请按照文档使用:

可迭代检查变量是数组还是可遍历对象

{% if myVar is iterable %} ... {% endif %}
于 2017-07-25T20:37:58.357 回答