Symfony 连接细枝中对象列表的属性值

Symfony 连接细枝中对象列表的属性值,symfony,twig,Symfony,Twig,是否可以连接对象列表的属性值以显示它? 比如: {{ users|join(', ', username) }} 其中,用户是对象,具有getUsername()方法。 我想,join不需要额外的参数,但是是否有一个解决方法来实现类似的功能?我不能使用\uuu toString()函数,因为它代表了其他东西…您可以使用 {% set usernames = [] %} {% for user in users %} {% set usernames = usernames|merge

是否可以连接对象列表的属性值以显示它?
比如:

{{ users|join(', ', username) }}
其中,
用户
是对象,具有
getUsername()
方法。
我想,
join
不需要额外的参数,但是是否有一个解决方法来实现类似的功能?我不能使用
\uuu toString()
函数,因为它代表了其他东西…

您可以使用

{% set usernames = [] %}

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

{{ usernames|join(', ') }}
但不是最漂亮的


您可以随时制作一个自定义细枝过滤器来完成此操作。

或者只需一个forloop即可获得相同的结果

{% for user in users %}
    {{ user.username }}{% if not loop.last %}, {% endif %}
{% endfor %}
以下文件的较短版本:

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

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

这条路对我有用,谢谢你。但是如果你没有提到这不是最漂亮的方式,我就不会接受你的答案,我应该尝试使用自定义过滤器,所以竖起大拇指!我将尝试查看自定义过滤器,并将其发布在此处。非常优雅,与文档引用的用例非常相似:
{{ users|map(u => u.username)|join(', ') }}