我目前正在将单个变量中的数组元素连接起来。我得到这样的记录
abc,def,ghi,
我不想在最后一个元素后添加额外的逗号,
。我的代码是:
{% for driver in item.vehicles if driver.driver.firstName %}
{% set isDriver = 1 %}
{% set driverList = driverList ~ driver.driver.firstName ~ ',' %}
{% endfor %}
答案 0 :(得分:3)
您可以像这样使用TWIG LOOP VARIABLE:
{% for driver in item.vehicles if driver.driver.firstName %}
{% set isDriver = 1 %}
{% set driverList = driverList ~ driver.driver.firstName %}
{% if loop.last == false %}
{% set driverList = driverList ~ ',' %}
{% endif %}
{% endfor %}
答案 1 :(得分:3)
不是计算循环,你可以创建一个驱动程序数组,并用,
之类加入它们。
{% set driverList = [] %}
{% for driver in item.vehicles if driver.driver.firstName %}
{% set driverList = driverList|merge([driver.driver.firstName]) %}
{% endfor %}
{{ driverList|join(',') }}
答案 2 :(得分:2)
只测试最后一个循环索引
{% for driver in item.vehicles if driver.driver.firstName %}
{% set isDriver = 1 %}
{% if loop.index is not sameas(loop.last) %}
{% set driverList = driverList ~ driver.driver.firstName ~ ',' %}
{%else%}
{% set driverList = driverList ~ driver.driver.firstName %}
{%endif%}
{% endfor %}
答案 3 :(得分:0)
loop.length,loop.revindex,loop.revindex0和loop.last变量仅适用于PHP数组或实现Countable接口的对象。在循环条件时它们也不可用。
http://twig.sensiolabs.org/doc/2.x/tags/for.html
您可以这样做(如果您想使用链接设置名称样式,则应将其设置为变量)
{% for driver in item.vehicles if driver.driver.firstName %}
{{ loop.index > 1 ? ', ': ''}}{{ driver.driver.firstName }}
{% endfor %}