Как в Twig сделать древовидный список

twig рекурсия на примере спискаНебольшой мануалчик для тех кто хочет с помощью шаблонизатора Twig вывести список в виде дерева либо создать любую древовидную структуру. Реализовано на примере рекурсивного вызова макроса через самого себя.

Для начала создаем файл макроса, к примеру tree.twig с содержимым и создаем макрос tree

{% macro list(items, step = 0) %}
    {% import _self as tree %}

    <ul class="tree-list-step-{{ step }}" style="margin-left: {{ step * 25 }}px;">
    {% for item in items %}
        <li>
            {{ item }}
            {% if item.childrens %}
                {{ tree.list(item.childrens, step + 1) }}
            {% endif %}
        </li>
    {% endfor %}
    </ul>
{% endmacro %}

Что бы использовать макрос в коде шаблона создаем файл template.twig с кодом

{% import "tree.twig" as tree %}

{{ tree.list(items) }}

На выходе получаем красивый древовидный список с рекурсией.

Более детальная информация по макросам в Twig.

Написать ответ

 Имя

 Mail

 Сайт

[Имя и Mail обязательны для заполнения. Mail не будет опубликован.]


 9fce13c8-2714-4603-b8e7-33be6c785d58