我用KnpMenuBundle在我的导航栏菜单上写下了最后几天。我想简单地给模板提供一些参数,然后对其做出反应。有可能吗?我试过这个:
$menu->addChild('Registration', array('route' => 'fos_user_registration_register',
'icon' => array('glyphicon' => 'briefcase')));然后我想在Twig模板中选择这个:
{% if icon['glyphicon'] is defined %}
<span class="glyphicon glyphicon-{{icon['glyphicon']}} "></span>
{% endif %}我试了很多,但都不管用。下一步我可以尝试什么?
发布于 2013-09-30 21:17:27
下面是我是如何做到的
Menu类:
$menu->addChild('Home', array(
'route' => 'home',
'extras' => array('icon' => 'home')
));我的菜单调用在模板中,我请求一个特定的小枝模板
{{ knp_menu_render('MyBundle:Menu:primaryNav', {'template': 'MyBundle:Menu:primaryNav.html.twig'}) }}在twig模板中,我复制/粘贴了knpmenubundle模板并编辑了一些块。你也可以用“扩展”和模板的继承东西来做到这一点(可能是个更好的主意)。
图标的编辑块示例:
{% block spanElement %}
<a href="#" class="dropdown-toggle">
{% if item.extras.icon is defined %}<i class="icon-{{ item.extras.icon }}"></i>{% endif %}
<span class="menu-text"> {{ block('label') }}</span>
<b class="arrow icon-angle-down"></b>
</a>
{% endblock %}您需要的可能是menu类中的"extras“字段:)
发布于 2014-10-28 03:05:24
我不知道这是否仍然有帮助,但有一个更简单的方式来使用knp菜单的字体棒。有一个选项,你可以给你的链接一个类。您只需创建一个不带标签的子项并添加setLinkAttribute即可。例如:
$menu
->addChild('', array('route' => 'backend_index'))
->setLinkAttribute('class', 'fa fa-home');这将创建一个带有fa fa-home类的"a“标记。即使字体令人敬畏的文档说图标是为内联元素设计的,它也会与"a“标签一起工作。然后,您可以使用一些css来改进设计。在我的例子中,我只是改变了字体大小和行高。
https://stackoverflow.com/questions/19032623
复制相似问题