首页 文章

PrestaSitemapBundle和类RouterInterface的多个定义

提问于
浏览
1

尝试设置PrestaSitemapBundle,但是当我尝试添加侦听器时会发生错误 .

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

Catchable Fatal Error:传递给AppBundle \ EventListener \ SitemapListener :: __ construct()的参数1必须实现接口Symfony \ Component \ Routing \ RouterInterface,在/ var / www / websitename / var / cache / dev / appDevDebugProjectContainer中调用给定的数组 . php在3268行并定义为“在/var/www/websitename/src/AppBundle/EventListener/SitemapListener.php第28行中的n / a

services.yml

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

此外,PhpStorm显示“类路由器接口的多重定义” .

是否以某种方式与错误相关联?

1 回答

  • 1

    您的服务定义中存在错误 .

    都..

    array:
        - 1
        - 2
    

    ..和..

    array: [1, 2]
    

    ..是定义命名数组的方法 .

    您的服务定义......

    arguments:
        - ['@router']
    

    ..本质上是创建一个数组,第一个值是一个数组,'@router'作为内部数组的第一个值 . 要解决此问题,您需要选择一种定义阵列的方法 . 所以要么......

    arguments:
        - '@router'
    

    .. 要么 ..

    arguments: ['@router']
    

相关问题