J'ai créé un service pour étendre le menu dans l'admin de Sylius. Il Travaillons bien;) I follow the official docService d'injection Sylius/Symfony 3 dans un service
J'essaie d'injecter le service de routeur, mais j'ai cette erreur suivante:
Type error: Too few arguments to function XXMenuListener::__construct(), 0 passed in appDevDebugProjectContainer.php on line 1542 and exactly 1 expected
La déclaration de ce service:
services:
app.listener.admin.menu_builder:
class: XXX\Menu\AdminMenuListener
autowire: true
arguments:
- '@router'
tags:
- { name: kernel.event_listener, event: sylius.menu.admin.main, method: addAdminMenuItems }
et la service lui-même:
<?php
namespace XXX\Menu;
use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
final class AdminMenuListener
{
private $router;
public function __construct(Router $router){
$this->router = $router;
}
/**
* @param MenuBuilderEvent $event
*/
public function addAdminMenuItems(MenuBuilderEvent $event){
$menu = $event->getMenu();
$newSubmenu = $menu
->addChild('new')
->setLabel('XXX')
;
$newSubmenu
->addChild('new-subitem')
->setLabel('XXX')
//->setUri('https://www.google.com');
->setUri($this->router->generate('foo'))
;
}
}
Qu'est-ce qui ne va pas? Merci de votre aide!
Dans votre message d'erreur que vous avez 'XXMenuListener' qui ne correspond pas à votre auditeur nom de la classe? Je suppose que vous l'avez édité dans votre question? Mais dans tous les cas, commencez par supprimer le répertoire cache juste pour l'éliminer comme un problème possible. – Cerad