我在自定义knp-menu模板时遇到问题。
我只是简单地解释了this site中的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'}) }}
我希望有人可以帮助我。
感谢。 迈克尔
答案 0 :(得分: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 %}
我已经回复了您最初发布问题的地方
答案 1 :(得分:1)
您是否已尝试清除缓存?
php app / console cache:clear
答案 2 :(得分:1)
我正在研究基于Symfony的CMS的Sonata项目。 在管理区域中,我为菜单添加了自定义模板,在该模板中我做了:
{% 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”。