首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KnpMenuBundle -发送选项并在Twig中使用它们

KnpMenuBundle -发送选项并在Twig中使用它们
EN

Stack Overflow用户
提问于 2013-09-26 23:39:10
回答 2查看 2.1K关注 0票数 2

我用KnpMenuBundle在我的导航栏菜单上写下了最后几天。我想简单地给模板提供一些参数,然后对其做出反应。有可能吗?我试过这个:

代码语言:javascript
复制
$menu->addChild('Registration', array('route' => 'fos_user_registration_register',
                                      'icon'  => array('glyphicon' => 'briefcase')));

然后我想在Twig模板中选择这个:

代码语言:javascript
复制
{% if icon['glyphicon'] is defined %}
    <span class="glyphicon glyphicon-{{icon['glyphicon']}} "></span>
{% endif %}

我试了很多,但都不管用。下一步我可以尝试什么?

EN

回答 2

Stack Overflow用户

发布于 2013-09-30 21:17:27

下面是我是如何做到的

Menu类:

代码语言:javascript
复制
$menu->addChild('Home', array(
    'route' => 'home',
    'extras' => array('icon' => 'home')
));

我的菜单调用在模板中,我请求一个特定的小枝模板

代码语言:javascript
复制
{{ knp_menu_render('MyBundle:Menu:primaryNav', {'template': 'MyBundle:Menu:primaryNav.html.twig'}) }}

在twig模板中,我复制/粘贴了knpmenubundle模板并编辑了一些块。你也可以用“扩展”和模板的继承东西来做到这一点(可能是个更好的主意)。

图标的编辑块示例:

代码语言:javascript
复制
{% 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“字段:)

票数 4
EN

Stack Overflow用户

发布于 2014-10-28 03:05:24

我不知道这是否仍然有帮助,但有一个更简单的方式来使用knp菜单的字体棒。有一个选项,你可以给你的链接一个类。您只需创建一个不带标签的子项并添加setLinkAttribute即可。例如:

代码语言:javascript
复制
$menu
  ->addChild('', array('route' => 'backend_index'))
  ->setLinkAttribute('class', 'fa fa-home');

这将创建一个带有fa fa-home类的"a“标记。即使字体令人敬畏的文档说图标是为内联元素设计的,它也会与"a“标签一起工作。然后,您可以使用一些css来改进设计。在我的例子中,我只是改变了字体大小和行高。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19032623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档