我目前正在制作一个包含Symfony包的菜单:KnpMenuBundle.我使用Bootstrap 4作为样式表. Bootstrap 4要求导航栏中的每个列表项都具有“nav-item”类: li class="nav-item active" -- this a class="nav-link" hre
Bootstrap 4要求导航栏中的每个列表项都具有“nav-item”类:
<li class="nav-item active"> <-- this <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li>
我似乎无法弄清楚如何使用KnpMenuBundle将类“nav-item”添加到列表项.目前我在加载页面时看到了这个:
navbar result
这是我在src / AppBundle / Menu中的Builder类:
namespace AppBundle\Menu; use Knp\Menu\MenuFactory; class Builder { public function mainMenu(MenuFactory $factory, array $optioins) { $menu = $factory->createItem('root'); $menu->setChildrenAttribute('class', 'navbar-nav mr-auto'); $menu->addChild('Home', ['route' => 'homepage']); $menu->setChildrenAttributes(['class' => 'nav-item']); return $menu; } }
我在base.html.twig中的代码生成菜单:
{{ knp_menu_render('AppBundle:Builder:mainMenu', {'currentClass': 'active'}) }}
我该怎么做才能让它发挥作用?
我这样做是为了让顶级正确.但是还没有计算出下拉菜单.$menu->setChildrenAttribute('class', 'navbar-nav'); // menu items foreach ($menu as $child) { $child->setLinkAttribute('class', 'nav-link') ->setAttribute('class', 'nav-item'); }