5

是否可以加入对象列表的属性值来显示它?
就像是:

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

对象在哪里users,有一个getUsername()方法。
我想join不需要额外的参数,但是有没有解决方法来实现类似的东西?我不能使用该__toString()功能,因为它代表其他东西......

4

4 回答 4

13

或仅使用一个 forloop 获得相同的结果

{% for user in users %}
    {{ user.username }}{% if not loop.last %}, {% endif %}
{% endfor %}
于 2017-01-31T08:40:46.607 回答
10

你可以用..

{% set usernames = [] %}

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

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

虽然不是最漂亮的。

你总是可以制作一个自定义的树枝过滤器来做到这一点。

于 2013-04-05T10:50:51.293 回答
8

您可以使用map()过滤器...并将所有内容放在一行中:

{{ users|map(u => u.username)|join(', ') }}
于 2020-04-16T13:32:43.453 回答
2

数字消息想法的简短版本:

{% for user in users %}
    {{ user.username ~ (not loop.last ? ', ') }}
{% endfor %}
于 2019-06-27T13:24:01.637 回答