FileLoaderImportCircularReferenceException при добавлении маршрутизации поддоменов в Symfony

Я пытаюсь перенаправить поддомен в конкретный пакет в Symfony2. Вот что у меня есть:

Я добавил локальные домены к своим хостам:

127.0.0.1    todolist.lc
127.0.0.1    manager.todolist.lc

Я создал виртуальный хост, который перенаправляет все субдомены в мою установку Symfony:

<VirtualHost 127.0.0.1>
ServerName todolist.lc
ServerAlias *.todolist.lc
DirectoryIndex app_dev.php
DocumentRoot "C:\xampp\htdocs\todolist\web"</VirtualHost>

Я создал новый Bundle для обработки субдомена manager.todolist.lc:

ManagerBundle

Сейчас я пытаюсь настроить маршрут к manager.todolist.lc:

frontend:
resource: "@FrontendBundle/Controller/"type:     annotation
prefix:   /

backend:
resource: "@BackendBundle/Controller/"type:     annotation
prefix:   /api

manager:
host:     manager.todolist.lc
resource: "@ManagerBundle/Controller/"type:     annotation
prefix:   /

Теперь, после добавления менеджера маршрута, я получаю исключение FileLoaderImportCircularReferenceException на каждом существующем маршруте.

Я также пытался использовать префикс, но это также дает исключение:

manager:
resource: "@ManagerBundle/Controller/"type:     annotation
prefix:   /manager

Я не могу понять, чего мне не хватает. Что я делаю неправильно? Если вам нужна дополнительная информация, просто спросите об этом в комментариях, и я предоставлю ее.

1

Решение

Хорошо. Вот чего мне не хватало:

1. Я забыл загрузить пакет в AppKernel

Очевидно, это очень важно:

new FrontendBundle\FrontendBundle(),
new BackendBundle\BackendBundle(),
new ManagerBundle\ManagerBundle(),

2. Субдомен должен быть объявлен перед основным доменом

После того, как я загрузил пакет в AppKernel, приложение все равно будет перенаправлено на FrontController. Я решил это, изменив порядок моих маршрутов:

manager:
host:     manager.todolist.lc
resource: "@ManagerBundle/Controller/"type:     annotation
prefix:   /

frontend:
resource: "@FrontendBundle/Controller/"type:     annotation
prefix:   /

backend:
resource: "@BackendBundle/Controller/"type:     annotation
prefix:   /api

После изменения порядка маршрутов работали как manager.todolist.lc, так и todolist.lc.

0

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

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

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