Вот макрос немного измененный подобного вопроса с stackoverflow
{% macro menu(links) %}
{% for key, link in links %}
<li>
<a href="{{ link }}">{{ key }}</a>
{% if link.sublink %}
<ul>
{{ _self.menu_links(link[key]) }}
</ul>
{% endif %}
</li>
{% endfor %}
{% endmacro %}
Но у link нет sublink и нет фильтра hassublinks. Как быть, самому написать? Или все же есть методы проверки внутри ядра твига?
if link is array — также не работает, такой проверки нет
На вход подается массив, если нужно могу дать var_dump, в yml он выглядит так:
Главная: /
Контакты: /contacts
Форум: /forum
О нас: /about
Услуги:
Услуга1: /one
Услуга2: /two