Php 表达方式;具有“角色(';角色';)”;拒绝访问,使用管理员用户

Php 表达方式;具有“角色(';角色';)”;拒绝访问,使用管理员用户,php,controller,fosuserbundle,symfony,Php,Controller,Fosuserbundle,Symfony,正如标题所示,我在Symfony3中遇到了一个角色提升问题 错误很简单: Expression "has_role('ROLE_ADMIN')" denied access. 我用 php bin/console fos:user:promote (etc.), 导致: a:1:{i:0;s:10:"ROLE_ADMIN";} 在数据库中 我还在“我的控制器”方法上添加了注释: /** * @Security("has_role('ROLE_ADMIN')") */ 我的secur

正如标题所示,我在Symfony3中遇到了一个角色提升问题

错误很简单:

Expression "has_role('ROLE_ADMIN')" denied access.
我用

php bin/console fos:user:promote (etc.), 
导致:

a:1:{i:0;s:10:"ROLE_ADMIN";}
在数据库中

我还在“我的控制器”方法上添加了注释:

/**
 * @Security("has_role('ROLE_ADMIN')")
 */
我的security.yml看起来像这样:

security:
 encoders:
  MR\UserBundle\Entity\User: sha512

role_hierarchy:
      ROLE_ADMIN:       [ROLE_USER, ROLE_MODERATOR]
      ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
  main:
    id: fos_user.user_provider.username

firewalls:
  dev:
    pattern: ^/(_(profiler|wdt)|css|images|js)/
    security: false
  main_login:
    pattern:   ^/login$
    anonymous: true
  main:
    pattern:      ^/
    anonymous:    true
    provider:     main
    form_login:
      login_path: fos_user_security_login
      check_path: fos_user_security_check
    logout:
      path:       fos_user_security_logout
      target:     /
    remember_me:
      secret:     %secret%

access_control:
  #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
不要为可见的增量而烦恼,这仅仅是复制粘贴的效果

我希望我没有错过一个明显的要点,但我更喜欢它,而不是一个没有解决的案件


提前感谢

@K.F I“它在早上工作”=>我在SF 3.X上也有这个问题。这不是缓存问题。只是因为我必须断开连接并重新连接才能将新角色应用到我的用户。

我知道这不是你的问题,但我在意识到我在用户推广中犯了错误后解决了我的问题。。。我没有添加
角色\u ADMIN
,只添加了
ADMIN
。。。新手错误

在您的控制器中指定为
@Security(“has_role('role_ADMIN')”)的注释的路径是什么
?它今天早上起作用了。。我想缓存是有问题的,即使昨天晚上清除缓存并没有解决问题。。对不起。。。那个我不知道该从中得出什么结论。祝你有一个美好的一天这不是一个答案,最好删除它并使用评论。