Twig for循环无缘无故地在第一次运行后结束

时间:2018-07-22 10:56:18

标签: symfony twig

我有以下无法解决的问题:

首先设置一个变量,然后将其克隆以在原始循环内运行一个循环(尝试获得一些父子列表):

{% set _sub_currentPageResults = paginator.currentPageResults %}
{{ dump(_sub_currentPageResults) }}
{% for item in paginator.currentPageResults %}

<b>ITEM: {{ item.id }}</b></br>

{% if item.isParent %}

案例1(测试),子循环运行正常,主循环继续:

{% for sub_item in [{'id': 1}, {'id' : 2}, {'id' : 3}, {'id' : 4}, {'id' : 5}, {'id' : 6}, {'id' : 7}, {'id' : 8}, {'id' : 9}, {'id' : 10}, {'id' : 11}, {'id' : 12}, {'id' : 13}, {'id' : 14}] %}
[{{ sub_item.id }}]
{% endfor %}</br>

rendered result

情况2(正常),子循环运行正常,第一次运行后主循环停止:

{% for sub_item in _sub_currentPageResults %}
[{{ sub_item.id }}]
{% endfor %}</br>

rendered result

它与在测试用例中正常工作的主循环中使用的数据完全相同。 我想念什么吗?

文件:list_product.html.twig 使用 EasyAdminBundle

1 个答案:

答案 0 :(得分:0)

在主循环中,您正在循环通过paginator.currentPageResults

因此,在子循环中您将执行相同的操作。 {% set _sub_currentPageResults = paginator.currentPageResults %}

由于这是一个迭代器,因此您可以在子循环中“用尽”它。 您应该将其转换为数组。

编辑:可以通过以下示例检查此行为:https://repl.it/repls/RustyNoxiousFiletype