Symfony 2.8 Twig_Error_Runtime Sonata Admin Bundle


Symfony 2.8 Twig_Error_Runtime Sonata Admin Bundle

Twig_Error_Runtime:在SonataAdminBundle::standard_layout.html.twig的第183行呈现模板时抛出异常("app.security"变量不可用)。

现在我认为这是不可能的,应用程序是 Twig 全局的,并且不知道从哪里开始。我正在尝试配置Sonata用户捆绑包:FOS用户捆绑包和Sonata管理捆绑包,但收效甚微。

编辑 我删除了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,并根据迁移到3.0的说明删除对app.security的调用:http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements

最后,此更改还会弃用 app.security 全局变量 对于树枝模板。您应该改用 app.user global 变量和 is_granted() 函数。

这是树枝桥中的一个错误,可能会在某个日期修复:https://github.com/symfony/symfony/issues/18223https://github.com/symfony/symfony/commit/bf066dace2922cf1ce335f5f683fc63d5a7e23c2

同时,我的解决方案是完全覆盖SonataAdminBundle::standard_layout.html.twig,并根据迁移到3.0的说明,将app.security的调用替换为app.user:http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements