在树枝中加入对象列表的属性值

时间:2013-04-05 09:23:52

标签: symfony twig

是否可以连接对象列表的属性值以显示它? 类似的东西:

{{ users|join(', ', username) }}

其中users是对象,使用getUsername()方法 我认为join没有采取额外的论点,但是有没有解决方法来实现类似的东西?我无法使用__toString()函数,因为它代表了其他内容......

4 个答案:

答案 0 :(得分:7)

你可以使用..

{% set usernames = [] %}

{% for user in users %}
    {% set usernames = usernames|merge([user.username]) %}
{% endfor %}

{{ usernames|join(', ') }}

虽然不是最漂亮的。

您可以随时制作自定义树枝滤镜。

答案 1 :(得分:6)

或仅与一个forloop具有相同的结果

arraylist = [{"x":1, "y":2}, {"x":3, "y":2}, {"x":5, "y":2}, {"x":33, "y":2}, {"x":1, "y":8}]
arraylist = map(lambda d: dict(filter(lambda (k,v): k != "y", d.iteritems())), arraylist)

答案 2 :(得分:3)

您可以使用map()过滤器…并将所有内容合而为一:

{{ users|map(u => u.username)|join(', ') }}

答案 3 :(得分:0)

digital-message's idea的缩写:

{% for user in users %}
    {{ user.username ~ (not loop.last ? ', ') }}
{% endfor %}