2016-08-07 3 views
1

PrestaSitemapBundleを設定しようとしましたが、リスナーを追加しようとするとエラーが発生します。PrestaSitemapBundleとクラスRouterInterfaceの多重定義

https://github.com/prestaconcept/PrestaSitemapBundle/blob/master/Resources/doc/5-Usage-Event_Listener.md

Catchable Fatal Error: Argument 1 passed to AppBundle\EventListener\SitemapListener::__construct() must implement interface Symfony\Component\Routing\RouterInterface, array given, called in /var/www/websitename/var/cache/dev/appDevDebugProjectContainer.php on line 3268 and defined" at n/a in /var/www/websitename/src/AppBundle/EventListener/SitemapListener.php line 28

services.yml

services: 
    sitemap.listener: 
     class: AppBundle\EventListener\SitemapListener 
     arguments: 
      - ["@router"] 
     tags: [{name: "presta.sitemap.listener"}] 

はまたPhpStormは、 "クラスRouterinterface複数の定義" を示しています。

何とかエラーが発生しましたか?

PhpStorm notification

+0

は、あなたのリスナーのためのサービス定義を表示することができますか? – qooplmao

+0

あなたはservice.ymlを意味していますか?上に追加されました –

答えて

1

あなたのサービス定義にエラーがあります。

両..

array: 
    - 1 
    - 2 

..and ..という名前の配列を定義するための

array: [1, 2] 

..are方法。

あなたのサービス定義...

arguments: 
    - ['@router'] 

...は、基本的に最初の値は、内部配列の最初の値として「@router」が配列さを持つ配列を作成しています。これを修正するには、配列を定義する方法の1つを選択する必要があります。だから、どちらか..

arguments: 
    - '@router' 

..か..

arguments: ['@router'] 
+0

ありがとう、私はそれを持っている! –

関連する問題