Метод setAttributes KnpMenuBundle не работает

Я использую KnpMenuBundle в своем приложении Symfony2.
Я пытаюсь установить атрибут меню class, используя setAttributes из FactoryInterface из KnpMenuBundle следующим образом:

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

Но это не работает! и результирующая разметка со строкой setAttribute или без нее:

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

в то время как я ожидаю иметь <ul class='sf-menu'>

В чем проблема?


person Ariyan    schedule 15.01.2015    source источник


Ответы (1)


Если вы хотите присвоить класс элементам li, вы должны установить его следующим образом:

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

Если вы хотите присвоить класс своему элементу ul:

$menu = $this->factory->createItem('root');
$menu->setChildrenAttribute('class', 'sf-menu');
person András    schedule 15.01.2015