Symfony2 FOSUserBundle 错误 - FileLoaderImportCircularReferenceException

Symfony2 FOSUserBundle error - FileLoaderImportCircularReferenceException

我正在尝试在新的 symfony2 项目上安装 FOSUserBundle。我已按照步骤安装它,但仍然遇到此错误:

FileLoaderImportCircularReferenceException in FileLoader.php line 97:
Circular reference detected in "/Users/tom/Sites/symfony/todo/app/config/routing_dev.yml" ("/Users/tom/Sites/symfony/todo/app/config/routing_dev.yml" > "/Users/tom/Sites/symfony/todo/app/config/routing.yml" > "/Users/tom/Sites/symfony/todo/app/config/routing_dev.yml").

当我尝试 运行 php app/console router:debug 时出现错误:

 [Symfony\Component\Config\Exception\FileLoaderLoadException]                                              
  Cannot load resource "@FOSUserBundle/Resources/config/routing/all.xml". Make sure the "FOSUserBundle" bu  
  ndle is correctly registered and loaded in the application kernel class.     

尽管我正在 AppKernel 中加载包。

在 routing.yml 我有(如果有帮助的话):

fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

似乎找不到任何关于此的内容,但是如果我搜索得不够好,我深表歉意。

已经从项目中删除了 AcmeDemoBundle,但没有从 routing_dev.yml 文件中删除相关的路由代码。

如果缓存对您不起作用,请查看您是否在控制器中包含使用注释路由所需的名称空间,在我的情况下我没有添加:

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;

在我的控制器中。 我打开一个问题,因为在这种情况下异常抛出是错误的,因为它说同样的错误:

FileLoaderImportCircularReferenceException

如果您删除以下行,也会发生这种情况:

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

来自您的控制器。 Symfony 需要这一行用于 @Route 注释。

我遇到了同样的问题和错误信息,但是我找不到任何循环引用。

问题:yml文件中缩进

abc_bundle_route:
path:     /my-url/{id}
defaults: { _controller: ABCBundle:Monitor:mycontroller, id: 0 }
    requirements:
        id: -?\d+

与(正确)不一样:

abc_bundle_route:
path:     /my-url/{id}
defaults: { _controller: ABCBundle:Monitor:mycontroller, id: 0 }
requirements:
    id: -?\d+

通过设置正确的缩进,错误已解决。