KnpMenuBundle不与引导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'}) }}
我该怎么做才能让这件事吗?
答
我这样做是为了得到顶级正确。尽管如此,还没有制定出下拉菜单。
$menu->setChildrenAttribute('class', 'navbar-nav');
// menu items
foreach ($menu as $child) {
$child->setLinkAttribute('class', 'nav-link')
->setAttribute('class', 'nav-item');
}
答
您可以将类添加到每个子项如果你把这样的:
$menu->addChild('Home', ['route' => 'homepage'])
->setAttributes(array(
'class' => 'nav-item'
));
谢谢你,这工作:) –