当前位置: 首页 > 知识库问答 >
问题:

如何修复YAML文件上的“循环引用”错误?

漆雕伟志
2023-03-14

FileLoaderImportCircularReferenceException:在“/app/config/routing_dev.yml”(“/app/config/routing_dev.yml”)中检测到循环引用

我正在努力做到这一点:http://symfony.com/doc/current/cookbook/routing/custom_route_loader.html#more-高级装载机

所以我创建了这个文件

AdvancedLoader.php

<?php
//namespace Acme\DemoBundle\Routing;
namespace Gabriel\AdminPanelBundle\Routing;

use Symfony\Component\Config\Loader\Loader;
use Symfony\Component\Routing\RouteCollection;

class AdvancedLoader extends Loader
{
    public function load($resource, $type = null)
    {
        $collection = new RouteCollection();

        $resource = '@GabrielAdminPanelBundle/Resources/config/routing.yml';
        $type = 'yaml';

        $importedRoutes = $this->import($resource, $type);

        $collection->addCollection($importedRoutes);

        return $collection;
    }

    public function supports($resource, $type = null)
    {
        return $type === 'advanced_extra';
    }
}

/src/Gabriel/AdminPanelBundle/Resources/config/services.yml

services:
    gabriel.routing_loader:
        class: Gabriel\AdminPanelBundle\Routing\AdvancedLoader
        tags:
            - { name: routing.loader }

/app/config/routing.yml

gabriel_messaging:
    resource: "@GabrielMessagingBundle/Controller/"
    type:     annotation
    prefix:   /

fos_js_routing:
    resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"

# app/config/routing.yml
Gabriel_Extra:
    resource: .
    type: advanced_extra

app/配置/routing_dev.yml

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /_configurator

_main:
    resource: routing.yml

/src/Gabriel/AdminPanelBundle/Resources/config/routing.yml

gabriel_admin_panel:
    resource: "@GabrielAdminPanelBundle/Controller/"
    type:     advanced_extra
    prefix:   /superuser

共有1个答案

爱海
2023-03-14

仔细看看@GabrielAdminPanelBundle/Resources/config/routing.yml

gabriel_admin_panel:
    resource: "@GabrielAdminPanelBundle/Controller/"
    type:     advanced_extra
    prefix:   /superuser

类型指定应该使用哪个加载程序,在本例中,您所说的advanced\u extra,即您的加载程序。您的加载程序再次包含该文件,该文件将再次执行加载程序,这将永远持续(换句话说:循环引用)。

还请注意,您已经在app/config/routing.yml中包含了路由:

gabriel_messaging:
    resource: "@GabrielMessagingBundle/Controller/"
    type:     annotation
    prefix:   /

这一次,您使用了正确的类型:annotation。您应该删除此条目并编辑@GabrielAdminPanelBundle/Resources/config/routing.yml文件以使用正确的类型。

 类似资料:
  • 代码编译,但当您运行它时,会出现错误消息,给出空指针异常。如底部所见。代码应该从程序中输入的txt文件中读取文本,然后创建一个新的txt文件,其中包含按服务年限排序的第一个txt文件的内容。但是,我一直收到该错误消息。任何帮助都将不胜感激。我在底部添加了错误消息,感谢所有帮助您的人,非常感谢:) (25分)定义一个Java的类,名为员工。该类有数据成员,并为以下六个数据项中的每一个提供访问器和修改

  • 假定我在一个大的JavaScript对象中有一个循环引用 浏览器抛出 “TypeError:将循环结构转换为JSON” (这是意料之中的)

  • 我在同一个目录中有几个具有相同结构的。json文件。我想从每个json文件的一些键创建一个具有值的唯一csv文件。 通过一个文件循环,一切都正常。下面是脚本的快照:

  • 固定的: 我删除了while循环并添加了 我正在尝试向一个单词中随机添加一个额外的字母副本(介于0-8之间)。实例does可能会变成dooee或doess。 我的函数有时会工作,但总是会因越界索引错误而崩溃。 我假设我需要在某个时刻检查ArrayList中的空值。我试着用和if来包装我的while语句,以检查它,但没有任何改进。有什么建议吗?

  • 问题内容: 我正在努力使我们所有的JS代码都通过jslint传递,有时会进行大量调整,以便暂时获得旧版代码传递,以期稍后对其进行适当修复。 jslint抱怨一件事,我没有工作环境。那就是当使用这样的构造时,我们会收到错误“不要在循环内创建函数”。 此循环是经典继承的JS实现的一部分,在经典实现中,扩展现有类的类在调用扩展类的成员时保留扩展类的超级属性。 但是,我们还在循环中创建了函数的其他实例。

  • 下面是我的父组件,它包含一个循环的多个输入。如何选择一个来聚焦?在这种情况下,我必须创建动态吗?