Symfony Route ломает панель инструментов отладки

После загрузки моего шаблона Twig с помощью контроллера и его отображения - это занимает некоторое время, и я получаю сообщение об ошибке: «Произошла ошибка при загрузке панели инструментов веб-отладки (404: не найдено)».

Теперь я исследовал около 2 часов и не могу найти правильное решение для меня! Я нашел "вещь", вызывающую эту проблему - это следующий маршрут:

showPage:
pattern: /{a}/{b}/{c}
defaults: { _controller: MyBundle:Page:show, a: null, b: null, c: / }
requirements:
    b: \d+
    c: .+

Я изменил порядок в routing_dev.yml, так что routing.yml будет импортирован перед WDT, чтобы он мог переопределить его — теперь routing_dev.yml выглядит так:

_main:
    resource: routing.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

Я использую текущую Symfony-Version 2.5.0 - файл .htaccess является файлом по умолчанию из Symfony2-Repo - mod_rewrite и mod_alias включены!

Если я перехожу на несуществующую страницу, а symfony говорит, что маршрут для "bla" не найден - панель инструментов работает.

У вас есть идеи, как сделать исключение для WDT-маршрутов?


person nPoday    schedule 08.06.2014    source источник
comment
Вы пытались запустить команды app/console router:debug и app/console router:match, это может дать вам подсказку   -  person tawfekov    schedule 08.06.2014
comment
Вы пытались импортировать свой _main ресурс после маршрута Symfony Profiler?   -  person Igor Pantović    schedule 08.06.2014
comment
@tawfekov спасибо - обнаружил, что маршрут работает   -  person nPoday    schedule 09.06.2014
comment
@Igor после того, как я обнаружил ошибку, она тоже работает таким образом (я сбросил ее, потому что это порядок по умолчанию, настроив проект из репозитория Symfony). Есть ли возможность включить какой-либо отчет об ошибках в EventListener, чтобы увидеть, произошла ли там ошибка? (В моем случае я хотел передать QueryBuilder-Object в $dbalConnection->fetchAll(), что невозможно, потому что сам метод требует, чтобы Query был строкой.   -  person nPoday    schedule 09.06.2014


Ответы (4)


Я ошибся, думая, что это проблема маршрута - проблема, вызванная в EventListener, который использовал Doctrine DBAL QueryBuilder и пытался передать объект в «fetchAll» DBAL-Connection.

Это вызывает ошибку, но Symfony нигде не сообщает, что показывает только мой сайт и говорит 404 для панели инструментов отладки.

person nPoday    schedule 09.06.2014

Откройте файл журнала app/logs/dev.log и выполните поиск по ключевому слову CRITICAL. Вы найдете Fatal Error, которые не были обнаружены Symfony. Попробуйте исправить это.

person Dos    schedule 18.11.2015

Поздно на вечеринку, но у меня была такая же ситуация, и было очень сложно найти ответ. Это именно то, что nPoday сказал здесь 9 июня 2014 года: у меня был слушатель, который выдавал ошибку, хотя это не было связано с Doctrine. Это была проблема с оболочкой AWS, которая даже не запускалась приложением при запуске, а страница, которую я загружал, демонстрировала проблему. Обязательно проверьте свои слушатели, отключите их один за другим, и вы можете обнаружить, что панель инструментов отладки внезапно начинает работать.

person Adam Bellas    schedule 17.03.2016

Есть много вещей, которые могут сломать панель инструментов, одна из самых распространенных — это незакрытая ошибка. Поэтому убедитесь, что вы проверили все свои журналы, прежде чем рвать на себе все волосы.

В моем случае это был "NOTICE: PHP message: PHP Fatal error: Access level to UserBundle\Entity\User::$id must be protected (as in class FOS\UserBundle\Model\User) or weaker in ...", так как мой id был частным.

После исправления эта панель инструментов снова появилась.

person StrayObject    schedule 12.12.2016