我一直在研究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 :(得分: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);
}
}