batch

El filtro batch agrupa elementos en lotes devolviendo una lista de listas con el número dado de elementos. Se puede proporcionar un segundo parámetro para rellenar los elementos faltantes:

{% set items = ['a', 'b', 'c', 'd'] %}

<table>
    {% for row in items|batch(3, 'No item') %}
        <tr>
            {% for index, column in row %}
                <td>{{ index }} - {{ column }}</td>
            {% endfor %}
        </tr>
    {% endfor %}
</table>

El ejemplo anterior se renderizará como:

<table>
    <tr>
        <td>0 - a</td>
        <td>1 - b</td>
        <td>2 - c</td>
    </tr>
    <tr>
        <td>3 - d</td>
        <td>4 - No item</td>
        <td>5 - No item</td>
    </tr>
</table>

Si eliges establecer el tercer parámetro preserve_keys en false, las claves se reiniciarán en cada bucle.

{% set items = ['a', 'b', 'c', 'd'] %}

<table>
    {% for row in items|batch(3, 'No item', false) %}
        <tr>
            {% for index, column in row %}
                <td>{{ index }} - {{ column }}</td>
            {% endfor %}
        </tr>
    {% endfor %}
</table>

El ejemplo anterior se renderizará como:

<table>
    <tr>
        <td>0 - a</td>
        <td>1 - b</td>
        <td>2 - c</td>
    </tr>
    <tr>
        <td>0 - d</td>
        <td>1 - No item</td>
        <td>2 - No item</td>
    </tr>
</table>

Argumentos

  • size: El tamaño del lote; los números fraccionarios se redondearán hacia arriba
  • fill: Se utiliza para rellenar elementos faltantes
  • preserve_keys: Si conservar las claves o no (por defecto es true)