2017-09-06 97 views
1

有人知道如何爲側欄中的菜單項創建通知系統嗎?在奏鳴曲中爲菜單項創建通知管理員

例如,如果你有一個側邊欄進入

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

這是令人驚訝的簡單!謝謝 ... –

相關問題