Настройте шаблон меню 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

Другие вопросы по тегам