Изменение порядка пунктов меню с помощью Sonata Admin Bundle + Event Listener

Я работал над проектом Symfony + SonataAdmin, и мы застряли на упорядочивании элементов в Sonata KnpMenu.

Сначала мы использовали Sonada Admin для вставки в меню и EventListeners чтобы добавить больше пунктов меню на основе других маршрутов, которые нам нужны. Это работало нормально. Проблема в том, что когда мы использовали как нативный админ, так и EventListeners чтобы добавить параметры, их алфавитный порядок распался, и параметры были разделены на что-то вроде:

A option (EVTL)

E option (EVTL)

F option (EVTL)

B option (Adm)

C option (Adm)

D option (Adm)

Пробовал осматривать много мест, и никто не мог мне помочь с этим.

0

Решение

Я пытался достичь чего-то похожего, и я решаю это, как в примере ниже (я не знаю, есть ли лучшее решение, но это сработало для меня). Я только что создал подписчик на событие:

class ConfigureMenuEventSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
ConfigureMenuEvent::SIDEBAR => ['onConfigureMenu', 10]
];
}

public function onConfigureMenu(ConfigureMenuEvent $event)
{
$children = $event->getMenu()->getChildren();

// todo some sorting operation with array

$event->getMenu()->setChildren($children);
}

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]