2017-10-23 6 views
0

私はSymfony + SonataAdminプロジェクトに取り組んでおり、ソナタのKnpMenuで要素を注文してしまいました。Sonata Admin Bundle + Event Listenerでメニュー項目を並べ替える

最初にメニューに挿入するSonada Adminと、必要な他のルートに基づいてメニュー項目を追加するEventListenersの両方を使用しました。それはうまくいった。問題は次のとおりです。私たちはオプションを追加するためにネイティブAdminと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); 
    } 

} 
関連する問題