2017-09-24 127 views
4

我目前做的菜單,其中的Symfony包工作。我使用Bootstrap 4作爲樣式表。KnpMenuBundle不與引導4導航欄

引導4需要在導航欄每個列表項有類的導航項目「:

<li class="nav-item active"> <-- this 
    <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> 
</li> 

我似乎無法弄清楚如何在類的導航項目」添加到使用KnpMenuBundle列出項目。目前我看到這個當我加載的頁面: navbar result

這在src /的appbundle /菜單我的生成器類:

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'}) }} 

我該怎麼做才能讓這件事嗎?

回答

2

我這樣做是爲了得到頂級正確。儘管如此,還沒有制定出下拉菜單。

$menu->setChildrenAttribute('class', 'navbar-nav'); 
// menu items 
foreach ($menu as $child) { 
    $child->setLinkAttribute('class', 'nav-link') 
     ->setAttribute('class', 'nav-item'); 
} 
2

您可以將類添加到每個子項如果你把這樣的:

$menu->addChild('Home', ['route' => 'homepage']) 
    ->setAttributes(array(
     'class' => 'nav-item' 
    )); 
+0

謝謝你,這工作:) –