0

我一直在从事 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)

试着环顾了很多地方,没有人能帮我解决这个问题。

4

1 回答 1

1

我试图实现类似的东西,并像下面的示例一样解决它(我不知道是否有更好的解决方案,但这对我有用)。我刚刚创建了事件订阅者:

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

}
于 2017-10-24T12:56:13.903 回答