我創建了一個服務來擴展Sylius的管理中的菜單。它工作得很好;) I follow the official docSylius/Symfony 3在服務中注入服務
我嘗試注入路由器服務,但我這個以下錯誤:
Type error: Too few arguments to function XXMenuListener::__construct(), 0 passed in appDevDebugProjectContainer.php on line 1542 and exactly 1 expected
這項服務的聲明:
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 }
和自己服務:
<?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'))
;
}
}
有什麼問題?謝謝你的幫助!
在您的錯誤信息,你有 'XXMenuListener',這不符合您的監聽器類的名字嗎?我懷疑你在你的問題中編輯它?但無論如何,從刪除緩存目錄開始,將其作爲可能的問題消除。 – Cerad