5

我已经可以做的是:

{% 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 %}

写这个的最简单/最短的方法是什么?

编辑

当然,我可以在我的控制器中对其进行测试,然后将结果作为变量传递给模板,但是没有更简单的方法吗?

4

2 回答 2

4

您正在寻找切片过滤器。

于 2012-07-07T06:23:18.963 回答
0

为将来可能需要此内容的任何人发布。

我使用以下切片方法完成了此操作,以获取数组的一半,然后是另一半。我需要这个来为数组的前半部分设置一个类,不管数字是多少(在我的例子中是导航子项)。记得Array根据需要更新

{% set half_first = Array|slice(0, Array|length / 2) %}
{% set half_second = Array|slice(Array|length / 2) %}
于 2020-06-24T18:17:22.237 回答