使用Sonata Admin Bundle + Event Listener重新排序菜单项

问题描述 投票:0回答:1

我一直在研究Symfony + SonataAdmin项目,我们卡在了Sonata KnpMenu元素的排序上。

首先,我们使用Sonada Admin插入菜单,EventListeners根据我们需要的其他路线添加更多菜单项。这工作得很好。问题是:当我们使用本机Admin和EventListeners添加选项时,它们按字母顺序排列,并且选项在以下内容中分离:

A option (EVTL)

E option (EVTL)

F option (EVTL)

B option (Adm)

C option (Adm)

D option (Adm)

试着环顾很多地方,没有人可以帮我这个。

php symfony sonata-admin sonata knpmenu
1个回答
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);
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.