Как настроить KNPMenuBundle?
Я не могу понять, как добавить изображение или тег span с помощью KnpMenuBundle.
Я просто хочу:
<ul>
<li>
<img src="{{asset('bundles/mybundle/images/my_image.png')}} /">
<span>My Title</span>
</li>
</ul>
В MenuBuilder это начнется с:
$menu->addChild('My Title');
Как я могу добавить изображение в оператор <li>
?
РЕДАКТИРОВАТЬ: ЛЕГКИЙ ПУТЬ
На самом деле есть простой способ сделать это в комплекте:
1 Скопировать шаблон vendor\KnpMenu\src\Knp\Menu\Resources\views\knp_menu.html.twig
в Acme\AcmeBundle\Resources\views\Menu\knp_menu.html.twig
и продолжите его следующим образом:
{% extends 'knp_menu.html.twig' %}
2 Измените шаблон в соответствии с вашими потребностями. Например, если вы решили добавить тег span каждый раз при использовании $menu->addChild('Your Title');
, просто добавьте тег span между <a></a>
:
{% block linkElement %}
<a href="{{ item.uri }}"{{ _self.attributes(item.linkAttributes) }}>
<span>{{ block('label') }}</span>
</a>
{% endblock %}
3 Теперь вы можете выбрать свой собственный макет при использовании меню:
{{ knp_menu_render('main', {'template': 'AcmeBundle:Menu:knp_menu.html.twig'}) }}