如何在Symfony 2中获取当前路线?
例如,routing.yml:
somePage:
pattern: /page/
defaults: { _controller: "AcmeBundle:Test:index" }
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得这个somePage价值?
如何自定义KNPMenuBundle?
我无法弄清楚如何使用KnpMenuBundle添加图像或span标记.
我只想要这个:
<ul>
<li>
<img src="{{asset('bundles/mybundle/images/my_image.png')}} /">
<span>My Title</span>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在MenuBuilder中,这将从以下开始:
$menu->addChild('My Title');
Run Code Online (Sandbox Code Playgroud)
我怎么能在<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' %}
Run Code Online (Sandbox Code Playgroud)
2 根据需要修改模板.例如,如果您决定每次使用 $menu->addChild('Your Title');时添加span标记,只需在以下各项之间添加span标记<a></a>:
{% block linkElement %}
<a href="{{ item.uri }}"{{ _self.attributes(item.linkAttributes) }}>
<span>{{ block('label') }}</span>
</a>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
3 您现在可以在使用菜单时选择自定义布局:
{{ knp_menu_render('main', {'template': 'AcmeBundle:Menu:knp_menu.html.twig'}) }}
Run Code Online (Sandbox Code Playgroud)