2017-09-06 96 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

这是令人惊讶的简单!谢谢 ... –

相关问题