Spec-Zone.ru › Twig 3

for

Перебирайте каждый элемент в последовательности. Например, чтобы отобразить список пользователей, предоставленных в переменной, называемой users:

<h1>Members</h1>
<ul>
    {% for user in users %}
        <li>{{ user.username|e }}</li>
    {% endfor %}
</ul>

Примечание

Последовательность может быть либо массивом, либо объектом, реализующим интерфейс Traversable.

Если вам нужно итерироваться по последовательности чисел, вы можете использовать оператор ..:

{% for i in 0..10 %}
    * {{ i }}
{% endfor %}

Вышеприведенный фрагмент кода выведет все числа от 0 до 10.

Он также может быть полезен с буквами:

{% for letter in 'a'..'z' %}
    * {{ letter }}
{% endfor %}

Оператор .. может принимать любое выражение с обеих сторон:

{% for letter in 'a'|upper..'z'|upper %}
    * {{ letter }}
{% endfor %}

Переменная loop

Внутри блока цикла for вы можете получить доступ к некоторым специальным переменным:

Переменная Описание
loop.index Текущая итерация цикла. (Индексируется с 1)
loop.index0 Текущая итерация цикла. (Индексируется с 0)
loop.revindex Количество итераций с конца цикла (индексируется с 1)
loop.revindex0 Количество итераций с конца цикла (индексируется с 0)
loop.first Истина, если это первая итерация
loop.last Истина, если это последняя итерация
loop.length Количество элементов в последовательности
loop.parent Родительский контекст
{% for user in users %}
{{ loop.index }} - {{ user.username }}
{% endfor %}

Примечание

Переменные loop.length, loop.revindex, loop.revindex0, и loop.last доступны только для PHP-массивов или объектов, реализующих интерфейс Countable.

Оператор else

Если итерация не произошла из-за пустой последовательности, вы можете отобразить заменяющий блок, используя else:

<ul>
    {% for user in users %}
        <li>{{ user.username|e }}</li>
    {% else %}
        <li><em>no user found</em></li>
    {% endfor %}
</ul>

Итерация по ключам

По умолчанию цикл перебирает значения последовательности. Вы можете перебирать ключи, используя фильтр keys:

<h1>Members</h1>
<ul>
    {% for key in users|keys %}
        <li>{{ key }}</li>
    {% endfor %}
</ul>

Итерация по ключам и значениям

Вы также можете получить доступ к ключам и значениям:

<h1>Members</h1>
<ul>
    {% for key, user in users %}
        <li>{{ key }}: {{ user.username|e }}</li>
    {% endfor %}
</ul>

Итерация по подмножеству

Возможно, вам нужно итерироваться по подмножеству значений. Это можно сделать, используя фильтр slice:

<h1>Top Ten Members</h1>
<ul>
    {% for user in users|slice(0, 10) %}
        <li>{{ user.username|e }}</li>
    {% endfor %}
</ul>
« flush | from »

© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/3.x/tags/for.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API