2017-09-06 6 views
1

누군가가 사이드 바에서 메뉴 항목에 대한 알림 시스템을 만드는 방법을 알고 있습니까? 예를 들어소나타의 메뉴 항목에 대한 알림 만들기 관리자

당신이 (예를 들어, SQL 스크립트를 통해 가져 와서)

Articles 

및 백그라운드에서

는, 새로운 기사가 ​​추가 된 사이드 바 항목을 경우. 그런 다음 메뉴 항목은

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

! 고맙습니다 ... –