Twig - 循环遍历数组的一部分

时间:2012-07-05 09:37:46

标签: twig

我已经可以做的是:

{% for _item in objects %}
    {{ _item.id }}
{% endfor %}

或者这个:

{% for i in 0..objects|length-1 %}
    {{ objects[i].id }}
{% endfor %}

循环整个数组。

我想做的是:

  • 循环遍历数组的一部分
  • 如果到达数组的末尾:停止(而不是抛出异常)

有点像这样 - 取决于哪个更小(想象只有5个项目):

{% for i in 0.. (10 OR objects|length-1) %}
    {{ objects[i].id }}
{% endfor %}

最简单/最短的写作方式是什么?

修改

当然,我可以在我的控制器中测试它,然后将结果作为变量传递给模板,但是不是更方便吗?

2 个答案:

答案 0 :(得分:4)

您正在寻找slice过滤器。

答案 1 :(得分:0)

为将来可能需要的人发布信息。

我使用以下slice方法完成了此任务,以获取数组的一半,然后获取另一半。我需要它来为数组的前半部分设置一个类,而不管其数量如何(在我的情况下是nav子项目)。请记住根据需要更新Array

{% set half_first = Array|slice(0, Array|length / 2) %}
{% set half_second = Array|slice(Array|length / 2) %}