在奏鸣曲中为菜单项创建通知管理员
问题描述:
有人知道如何为侧栏中的菜单项创建通知系统吗?在奏鸣曲中为菜单项创建通知管理员
例如,如果你有一个侧边栏进入
Articles
,并在后台,一个新的文章已经被添加(例如,通过通过SQL脚本导入)。然后菜单条目应显示为
Articles (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
这是令人惊讶的简单!谢谢 ... –