Как настроить 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'}) }}
<li>
или<span>
и не добавить изображение в css? - person j0k   schedule 27.06.2012config.yml
так, чтобы строкаtemplate:
в блокеknp_menu:
читалась какYourBundle:Menu:knp_menu.html.twig
. - person geoB   schedule 27.06.2014Unable to find template "AppBundle:Menu:knp_menu.html.twig"
. Кстати, я проголосовал за ваш ответ за то время, которое вы потратили на подготовку этого руководства. - person Pmpr   schedule 06.03.2017