Есть twig шаблон, который принимает на вход переменную tree
в формате:
$tree = [
0 => [
'data' => 'Item 1',
'childrens' => [
0 => ['data' => 'Item 1.1'],
1 => ['data' => 'Item 1.2'],
],
],
1 => ['data' => 'Item 2'],
2 => [...]
];
Нужно вывести эту переменную в виде дерева состоящего из вложенных списков ul/li.
Один из способов это макросы:
{% macro render_tree(tree) %}
{% import _self as macros %}
<ul>
{% for item in tree %}
<li>
{{ item.data }}
{% if item.childrens %}
{{ macros.render_tree(item.childrens) }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endmacro %}
{% import _self as macros %}
{{ macros.render_tree(tree) }}
Так выводятся например системные меню — menu.html.twig.
Написанное актуально для
Drupal 8
Добавить комментарий