Symfony2奏鸣曲管理错误

Symfony2奏鸣曲管理错误,symfony,symfony-sonata,Symfony,Symfony Sonata,我最近做了一个供应商/安装,现在我的sonata管理员出现以下错误: 第92行的SonataAdminBundle::standard_layout.html.twig中不存在“”的项“角色” 以下是细枝代码: {% if app.security %} {% for role in app.security.token.roles %} {% if not allowed %} {% set allowed = role.role == 'ROLE_SONATA_ADM

我最近做了一个供应商/安装,现在我的sonata管理员出现以下错误:

第92行的SonataAdminBundle::standard_layout.html.twig中不存在“”的项“角色”

以下是细枝代码:

{% if app.security %}
  {% for role in app.security.token.roles %}
    {% if not allowed %}
      {% set allowed = role.role == 'ROLE_SONATA_ADMIN' %}
    {% endif %}
  {% endfor %}
{% endif %}
有人有什么想法吗


谢谢

我搜索了带有责备选项的管理包,它来自7天前的一次提交

所以你要做的就是去副锁

查找adminBundle提交散列(在我的例子中,它是从4a开始的…) 将哈希替换为25B401E6271EE0FD896D700D0328B06944E4E138,该哈希在导致问题的提交之前提交

我试过了,仪表板工作正常

祝你好运

编辑

注意不要使用php bin/vendor update,因为它会更新提交散列

使用php bin/vendor安装

以下是修复程序:

拆下管路90-99并更换为以下部件:

{% if app.security and is_granted('ROLE_SONATA_ADMIN') %}

我对SonataAdminBundle的上一个版本也有同样的问题。如果允许所有人打开管理面板,则会出现此问题。至少对于工作现场来说,这不是所有的解决方案

要授予每个人访问管理面板的权限,请执行以下操作。将路径/admin放在防火墙下,将其添加到security.yml部分的security.firewals行中

    admin_area:
        pattern: ^/admin
        anonymous: ~
因此,每个客户端将被授权为具有现有令牌的匿名用户,并且不会出现错误


另外,对于语法错误,我很抱歉,但我想每个人都会理解我:)

只是想一想,但是在供应商/安装之后,您是否清除了缓存
php应用程序/控制台缓存:clear
我尝试了此操作,现在收到以下错误:在呈现模板期间引发了异常(“安全上下文不包含身份验证令牌。一个可能的原因可能是没有为此URL配置防火墙”)在第90行的SonataAdminBundle::standard_layout.html.twig中。我在deps.lock文件中的列表中没有看到adminBundle。我的坏adminBundle是我给它的名称,因此您应该搜索在哪里定义sonata admin bundle repo的url