43

除了最后一个之外,在列表的每个元素之后添加逗号的最短(和最清晰)的方法是什么?

{% for role in user.roles %}
    {{ role.name }},
{% endfor %}

此示例将在所有行之后添加逗号,包括最后一行。

4

6 回答 6

104

不知道最短,但这可能很清楚。尝试以下操作在循环中除最后一行之外的所有行之后添加逗号:

{% for role in user.roles %}
    {{ role.name }}
    {% if not loop.last %},{% endif %}
{% endfor %}

评论中建议的较短版本:

{% for role in user.roles %}
    {{ role.name }}
    {{ not loop.last ? ',' }}
{% endfor %}
于 2013-08-09T07:24:48.360 回答
25

这适用于 Symfony 2.3.x,但应该适用于每个 2.x 版本:

{{ user.roles|join(', ') }}
于 2013-09-01T01:05:58.127 回答
2

{{- 不是 loop.last ?',' : '' -}}

于 2018-09-25T14:46:56.147 回答
2

{{ user.roles|column('title')|join(', ') }}

于 2020-06-24T11:27:04.757 回答
0

由于 OP 要求对namea 的键进行迭代role

最短的是:

{{ user.roles|column('name')|join(', ') }}

其中user.roles是用户角色列表。

于 2020-09-28T18:33:25.427 回答
-1

以下是我如何在循环中使用 twig 的局部变量以某种科学出版物格式打印作者姓名(以数组形式authors)-loopfor

    {% spaceless %}
     {% for author in authors %}
      {{- loop.last ? ' and ' : (not loop.first ? ', ') -}}
      {{- author -}}
     {% endfor %}
    {% endspaceless %}

输出类似于

  • 为 1 位作者

    作者1

  • 2位作者

    作者 1 和作者 2

  • 对于 3 位或更多作者

    作者 1、作者 2 和作者 3

于 2018-08-12T08:50:00.367 回答