KnpMenuBundle无法与Bootstrap 4导航栏一起使用

Dyl*_*aaf 5 symfony knpmenubundle bootstrap-4

我目前正在使用Symfony捆绑软件制作菜单:KnpMenuBundle。我正在使用Bootstrap 4作为样式表。

引导程序4要求导航栏中的每个列表项都具有“ nav-item”类:

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

我似乎无法弄清楚如何使用KnpMenuBundle将“ nav-item”类添加到列表项。目前,我在加载页面时看到以下内容: navbar结果

这是我在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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在base.html.twig中生成菜单的代码:

{{ knp_menu_render('AppBundle:Builder:mainMenu', {'currentClass': 'active'}) }}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能使其正常工作?

She*_*evy 7

我这样做是为了使最高级别正确。尚未计算出下拉菜单。

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