2017-09-06 8 views
1

誰かがサイドバーのメニュー項目の通知システムを作成する方法を知っていますか?例えばソナタのメニュー項目の通知を作成するadmin

あなたはサイドバーのエントリ

Articles 

と、バックグラウンドでを持っている場合は、新しい記事が(例えばSQLスクリプト経由でインポートすることによって)追加されました。メニューエントリは

と表示されます
Articles (1) 

私の懸念のためのチュートリアルはありますか?

答えて

1

サイドバーのメニュー項目を変更できます。

これを行うには、必要な方法でメニューを構成するリスナーを作成する必要があります。あなたはメニューを変更するクラスを書くことができます。その後

app.menu_listener: 
    class: AppBundle\EventListener\MenuBuilderListener 
    tags: 
     - { name: kernel.event_listener, event: sonata.admin.event.configure.menu.sidebar, method: addMenuItems } 
    calls: 
     - [ setDependencies, [ @doctrine.orm.entity_manager ] ] 

:あなたはこのコードでこれを行うことができます

namespace AppBundle\EventListener; 

use AppBundle\Entity\Configuration; 
use Sonata\AdminBundle\Event\ConfigureMenuEvent; 
use Doctrine\ORM\EntityManager; 

class MenuBuilderListener { 

    /** @var EntityManager $em */ 
    private $em; 

    public function addMenuItems(ConfigureMenuEvent $event) 
    { 
     $articles = $this->em->getRepo('AppBundle:Article')->findAll(); 

     $menu = $event->getMenu(); 
     $articleMenu = $menu->getChild('sonata.admin.group.articles'); 

     $articleMenu->setLabel('Articles <span>' . $articles->count() . '</span>') 
    } 

    public function setDependencies(EntityManager $em, Translator $translator) { 
     $this->em = $em; 
    } 
} 

は、これはあくまでも一例ですが、私ならば、私が取る方法ですhttps://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_knp_menu.html

+0

驚くほど簡単だった:この機能を実行する必要があり、私はこれがあなたに

を助けるかもしれないあなたがここにこれについての詳細情報を持っている願っています!ありがとうございました ... –

関連する問題