Как исправить & quot; Циркулярную ссылку & quot; ошибка в файле YAML?

FileLoaderImportCircularReferenceException: круговая ссылка
обнаружено в «/app/config/routing_dev.yml»(«/app/config/routing_dev.yml»>
«/app/config/routing.yml»> «.» >
«@ GabrielAdminPanelBundle / Controller /»>
«/App/config/routing_dev.yml»).

Я пытаюсь добиться этого:
http://symfony.com/doc/current/cookbook/routing/custom_route_loader.html#more-advanced-loaders

поэтому я создал этот файл

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

приложение / Config / 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

3

Решение

Внимательно посмотрите на @GabrielAdminPanelBundle/Resources/config/routing.yml:

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

type указывает, какой загрузчик следует использовать, в этом случае вы сказали advanced_extra, который является вашим загрузчиком. Ваш загрузчик снова включает этот файл, и файл снова будет запускать загрузчик, это будет продолжаться вечно (другими словами: циклическая ссылка).


Также обратите внимание, что вы уже включили маршруты в app/config/routing.yml:

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

На этот раз вы используете правильный тип: annotation, Вы должны удалить эту запись и отредактировать @GabrielAdminPanelBundle/Resources/config/routing.yml файл для использования правильных типов.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]