KnpMenuBundle 的 setAttributes 方法不起作用

setAttributes method of KnpMenuBundle doesn't work

我在我的 Symfony2 应用程序中使用 KnpMenuBundle
我正在尝试使用 setAttributes of FactoryInterface of KnpMenuBundle 设置菜单 class 属性,如下所示:

    $menu = $factory->createItem('root');
    $menu->setAttribute('class' , 'sf-menu');

但这行不通!包含或不包含 setAttribute 行的结果标记为:

<ul>
    <li class="first">
     ...
</ul>

虽然我希望有 <ul class='sf-menu'>

有什么问题?

如果你想给class到li个元素,你必须这样设置:

$menu->addChild('Label', [
    ...
    'attributes' => ['class' => 'sf-menu'],
]);

如果您想为 ul 元素提供 class:

$menu = $this->factory->createItem('root');
$menu->setChildrenAttribute('class', 'sf-menu');