Twig Can';t重复“t”;“过滤器”;多次过滤
我试图将“过滤器”过滤器的结果(从Twig 2.10开始提供)分配给一个变量,以便我可以多次使用它:Twig Can';t重复“t”;“过滤器”;多次过滤,twig,twig-filter,Twig,Twig Filter,我试图将“过滤器”过滤器的结果(从Twig 2.10开始提供)分配给一个变量,以便我可以多次使用它: {% set filtered = collection|filter(element => element.ok) %} 但不幸的是,如果我尝试对它进行多次迭代(使用“长度”过滤器计数),就会得到错误 无法遍历已关闭的生成器 在第一次之后。错误很明显,“filter”实际上返回一个生成器(我相信不能多次迭代),而不是数组或集合 问题在于,它使编写以下代码变得不可能,例如: {% if
{% set filtered = collection|filter(element => element.ok) %}
但不幸的是,如果我尝试对它进行多次迭代(使用“长度”过滤器计数),就会得到错误
无法遍历已关闭的生成器
在第一次之后。错误很明显,“filter”实际上返回一个生成器(我相信不能多次迭代),而不是数组或集合
问题在于,它使编写以下代码变得不可能,例如:
{% if filtered|length > 0 %}
<ul>
{% for element in filtered %}
<li>{{ element }}</li>
{% endfor %}
</ul>
{% endif %}
{%if filtered | length>0%}
{已筛选%%中的元素的%}
- {{element}}
{%endfor%}
{%endif%}
此代码将触发for循环上的上述错误
我可以对原始集合进行重新筛选,而不是使用变量,但如果它包含大量元素,这似乎不是最佳选择。
我也想过写我自己的过滤器,把原来的包装起来,但如果不这样做的话,我会活得更好
还有更好的事要做吗?这是否应该被视为一个小错误(在这种情况下,我将在他们的回购协议中打开一个问题)
请注意,它没有表现出这种奇怪的行为,但与Twig 2.10不兼容
谢谢那确实是一个,现在是那确实是一个,现在是