我有以下无法解决的问题:
首先设置一个变量,然后将其克隆以在原始循环内运行一个循环(尝试获得一些父子列表):
{% 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>
情况2(正常),子循环运行正常,第一次运行后主循环停止:
{% for sub_item in _sub_currentPageResults %}
[{{ sub_item.id }}]
{% endfor %}</br>
它与在测试用例中正常工作的主循环中使用的数据完全相同。 我想念什么吗?
答案 0 :(得分:0)
在主循环中,您正在循环通过paginator.currentPageResults
。
因此,在子循环中您将执行相同的操作。
{% set _sub_currentPageResults = paginator.currentPageResults %}
由于这是一个迭代器,因此您可以在子循环中“用尽”它。 您应该将其转换为数组。
编辑:可以通过以下示例检查此行为:https://repl.it/repls/RustyNoxiousFiletype