2013-08-09 5 views
25

Qual è il modo più breve (e più chiaro) per aggiungere una virgola dopo ogni elemento dell'elenco tranne l'ultimo?Elenco separato da virgola nel ramoscello

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

Questo esempio aggiungerà virgola dopo tutte le linee, tra cui l'ultimo.

+0

vuoi dire comma compreso l'ultimo o escluso l'ultimo? – vee

+0

Voglio elenco separato da virgole, escludendo quindi l'ultimo. – DmitryR

risposta

65

Non so di più breve, ma questo potrebbe essere chiaro. Provare quanto segue per aggiungere virgola dopo tutte le linee nel loop tranne l'ultimo:

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

grazie, se lo sapessi prima ... –

+0

Questo non funziona con '{% for loop if statment%}' – maches

+7

Forse per pulire un po 'andare con '{{not loop.last? ','}} ' – Roeland

16

Questo funziona con Symfony 2.3.x, ma dovrebbe funzionare con tutte le versioni 2.x:

{{ user.roles|join(', ') }} 
+4

Non funzionerà: user.roles è un array ** di oggetti **. – DmitryR

+2

funziona perfettamente per un array – c33s

+1

Oh perfetto, funziona in Twig per OctoberCMS. – igneosaur