Vous pouvez modifier les éléments de menu de la barre latérale. Pour ce faire, vous devez créer un programme d'écoute qui configurera le menu de la manière que vous souhaitez. Vous pouvez le faire avec ce code:
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 ] ]
Après cela, vous pouvez écrire la classe qui modifient le menu:
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;
}
}
Ceci est seulement un exemple, mais est le chemin que je prendrai si je besoin de faire cette fonctionnalité, j'espère que cela peut vous aider à
vous avez plus d'informations sur ce ici: https://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_knp_menu.html
C'était incroyablement facile! Je vous remercie ... –