Визуализация пользовательского атрибута KNP Menu

Есть ли способ отобразить пользовательский атрибут в пакете меню KNP, что-то вроде этого:

$menu = $factory->createItem(Role::ROLE_PROGRAM_EVENT_PLANNER, array(
    'route' => 'show_form_events',
    'attributes' => array('class' => 'menu pe_planner'),
    'extra' => array(
      'content' => 'my custom content'
    )
));

Я переопределил linkElement, добавив дополнительный div после тега a. В этом div я хотел бы отобразить дополнительный контент

{% block linkElement %}
    {% import _self as knp_menu %}
    <a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>{{ block('label') }}</a>
    {% if item.hasChildren == false %}
        <div class="custom">{{ item.getExtra('content') }}</div>
    {% endif %}
{% endblock %}

person apfz    schedule 23.01.2014    source источник
comment
Вы получили ошибку по вашему коду? На моей памяти я бы сказал, что делал это аналогичным образом   -  person nixoschu    schedule 23.01.2014


Ответы (1)


На самом деле я должен был сделать то же самое на сегодня;)

MenuBuilder

$menu->addChild(
  'Dashboard',
  array(
    'route'      => 'dashboard',
    'attributes' => array(
      'class' => 'navigation-entry'
    ),
    'extras' => array(
      'icon' => '6'
    )
  )
);

менюШаблон

{% block linkElement %}
  {% import "knp_menu.html.twig" as macros %}    
  <a href="{{ item.uri }}"{{ macros.attributes(item.linkAttributes) }}>
    <span class="icon">{{ item.getExtra('icon') }}</span>
    <span class="entry">{{ block('label') }}</span>
  </a>
{% endblock %}

Не путайте содержимое значков, потому что я использую шрифт значков.

person nixoschu    schedule 23.01.2014