Symfony2, как я могу пропустить печать повторяющихся значений в цикле в шаблонах twig?

#php #symfony #twig

#php #symfony #twig

Вопрос:

У меня есть таблица в этом цикле:

 {% for key, value in boxes %}
     <tr>
        <td>{{ value.boxnum }}</td>
        <td>{{ value.code }}</td>
        <td>{{ value.total }}</td>
        <td>{{ value.qty }}</td>
     </tr>
{% endfor %}
  

Что дает таблицу:

   Box       Code   Total   Qty  
3096362    130291   27     216  
3096362    140001   18     144  
3096362    140003    4      32  
3096362    140013   14     112  
  

Как я могу заставить столбец Box # печатать только один раз, поскольку остальные просто повторяются?

Комментарии:

1. Вы могли бы установить переменную равной номеру поля на каждой итерации. Перед тем, как вручную проверить, равно ли текущее значение boxnum контрольной переменной, и распечатать соответственно.

Ответ №1:

Это то, что вы можете сделать

 {% set bnum = '' %}
{% for key, value in boxes %}
 <tr>
    {% if bnum != value.boxnum %}
      {% set bnum = value.boxnum  %}
      <td>{{ value.boxnum }}</td>
    {% else %}
      <td></td>
    {% endif %}
    <td>{{ value.code }}</td>
    <td>{{ value.total }}</td>
    <td>{{ value.qty }}</td>
 </tr>
{% endfor %}