如何在数组中随机化项目并循环它们?
{% for item in article.resources|shuffle|slice(1) %}
...
{% endfor %}
我得到这个错误:
在"partials/content"中未知的"shuffle"过滤器。
如果我使用random():
{% for item in random(article.resources|slice(1)) %}
不返回任何内容。
任何想法?
指出:
Twig Array Extension已经有一个shuffle()
过滤器(基于PHP shuffle()
)
像这样做:
$twig = new Twig_Environment($loader);
$function = new Twig_SimpleFunction('shuffle', function ($array) {
shuffle($array);
return $array;
});
$twig->addFunction($function);
在这里阅读更多信息
http://twig.sensiolabs.org/doc/advanced.html函数
我使用了树枝数组扩展,以利用|shuffle
。在我的安装扩展没有加载。
添加到我的配置/服务。Yml,在services下:
services:
twig.extension.array:
class: Twig_Extensions_Extension_Array
tags: [twig.extension]
那么你可以使用:
{% for item in items|shuffle %}
...
{% endfor %}
我认为你必须去掉它的一部分。
试试这个代码,让我知道这是否有效。
{% for item in random(article.resources) %}
{% endfor %}
您可能希望在for循环中保留一些检查,以确保random不会两次返回相同的项。