Настройте шаблон меню knp в Symfony2
У меня проблема с настройкой шаблона меню knp.
Я просто расшифровал knp_menu.html.twig, как на этом сайте.
Если я попробую это так, я получу эту ошибку:
Мой knp_menu.html.twig выглядел так:
{% extends 'knp_menu.html.twig' %}
{% block linkElement %}{% import _self as knp_menu %}
<a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>{{ block('label') }}</a>
{% endblock %}
Я пытаюсь сделать шаблон так:
{{ knp_menu_render('MainShowBundle:Builder:mainUserMenu', {'template': 'MainShowBundle:Menu:knp_menu.html.twig'}) }}
Я надеюсь, что кто-то может помочь мне.
Благодарю. Майкл
3 ответа
Вам нужно импортировать макросы из родительского шаблона, прежде чем вы сможете их использовать.
{% block linkElement %}
{% import 'knp_menu.html.twig' as knp_menu %}
<a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>
<span>{{ block('label') }}</span>
</a>
{% endblock %}
Я уже ответил на это, где вы первоначально разместили свой вопрос
Вы уже пробовали очистить кеш?
PHP кэш приложения / консоли: очистить
Я работаю над проектом Sonata, который похож на CMS на основе Symfony. В административной области я добавил пользовательский шаблон для меню, и в этом шаблоне я сделал:
{% extends 'knp_menu.html.twig' %}
{% block linkElement %}
{% import 'knp_menu.html.twig' as knp_menu %}
<a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>
<span>{{ block('label') }}</span>
</a>
{% endblock %}
{% block spanElement %}
{% import 'knp_menu.html.twig' as knp_menu %}
<a href="{{ item.uri }}"{ knp_menu.attributes(item.linkAttributes) }{ block('label') }</a>
{% endblock %}
Обратите внимание, что вам может понадобиться добавить "spanElement", а также "linkElement".
Полная реализация шаблона https://github.com/sonata-project/sandbox-build/blob/2.4/vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views/knp_menu.html.twig