如何检查数组是否在循环的twigs中有更多元素?

时间:2015-06-10 14:35:43

标签: symfony twig

我目前正在将单个变量中的数组元素连接起来。我得到这样的记录

abc,def,ghi, 

我不想在最后一个元素后添加额外的逗号,。我的代码是:

{% for driver in item.vehicles if driver.driver.firstName %}
{% set isDriver = 1 %}
{% set driverList = driverList ~ driver.driver.firstName ~ ',' %}
{% endfor %}
 

4 个答案:

答案 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 %}
相关问题