2016-03-17 5 views
1

Twig_Error_Runtime: Исключение было создано во время рендеринга шаблона («переменная« app.security »недоступна.») В SonataAdminBundle :: standard_layout.html.twig в строке 183.Symfony 2.8 Twig_Error_Runtime Соната Admin Bundle

Теперь я не думал, что это возможно, приложение является глобальным Twig и не имеет понятия, с чего начать. Я пытаюсь настроить Соната Пользовательский Bundle: FOS User Bundle и Sonata Admin Bundle с небольшим успехом.

EDIT Я удалил SonataUserBundle и вернулся к конфигурации, которую я знаю, работал в других проектах. Это изолировало проблему как особенность Symfony и Twig, а не ошибку в моей конфигурации; поэтому я удалил свои файлы конфигурации.

Для всех, кто сталкивается с этой проблемой: app.security устарела от 2.6 и должна была быть удалена в версии 3.0. Однако кто-то сломал уровень BC, и контейнер больше не вводится, поэтому эффект app.security был удален в 2.8, а не в 3.0. См. https://github.com/symfony/symfony/issues/18223 и https://github.com/symfony/symfony/commit/bf066dace2922cf1ce335f5f683fc63d5a7e23c2. Я не знаю, будет ли или когда это будет исправлено.

Тем временем мое решение было полностью перекрыть SonataAdminBundle :: standard_layout.html.twig и удалить вызовы app.security согласно миграции 3.0 Инструкции: http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements

Наконец, это изменение также принижает глобальная переменная app.security для шаблонов Twig. Вместо этого вы должны использовать переменную app.user и функцию is_granted().

ответ

0

Это ошибка в Twig Bridge, которая может быть установлена ​​на некоторые даты: https://github.com/symfony/symfony/issues/18223 https://github.com/symfony/symfony/commit/bf066dace2922cf1ce335f5f683fc63d5a7e23c2

Тем временем мое решение было полностью перекрыть SonataAdminBundle :: standard_layout.html.twig и заменить вызовы к app.security с app.user в соответствии с инструкцией перехода к 3.0: http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements

Смежные вопросы