使用Sonata Admin Bundle +事件监听器

时间:2017-10-23 18:53:06

标签: php symfony sonata-admin sonata knpmenu

我一直在研究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)

试着环顾很多地方,没有人能帮助我。

1 个答案:

答案 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);
    }

}