Как в 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.
