Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2-访问被拒绝_Php_Symfony_Access Denied_User Roles - Fatal编程技术网

Php Symfony2-访问被拒绝

Php Symfony2-访问被拒绝,php,symfony,access-denied,user-roles,Php,Symfony,Access Denied,User Roles,我在我的项目中使用Symfony2,我创建了两个页面。一个登录页面和一个索引页面。我已成功登录管理员帐户(使用角色\u admin。 但我收到403禁止页面,错误如下: 错误-未捕获的PHP异常 Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException:“拒绝访问”位于。\vendor\Symfony\Symfony\src\Symfony\Component\Security\Http\Firewall\Exception

我在我的项目中使用Symfony2,我创建了两个页面。一个登录页面和一个索引页面。我已成功登录管理员帐户(使用
角色\u admin

但我收到403禁止页面,错误如下:

错误-未捕获的PHP异常
Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException:“拒绝访问”位于。\vendor\Symfony\Symfony\src\Symfony\Component\Security\Http\Firewall\ExceptionListener.php第100行

这是我在
security.yml
中的配置:

access_control: 
   - { path: ^/vs/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
   - { path: ^/vs/index, roles: ROLE_ADMIN }
当我使用var_转储用户时。我看到角色是空的:

private 'roles' => 
    object(Doctrine\ORM\PersistentCollection)[293]
      private 'snapshot' => 
        array (size=0)
          empty
这是我的
User.php
中的角色:

/**
 * @ORM\ManyToMany(targetEntity="Role", inversedBy="users")
 * @ORM\JoinTable(name="user_role",
 * joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 * inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
 * )
 */
private $roles;
这就是我在使用
$user->getRoles()时得到的结果:


我做错了什么?

条令关系注释错误:

/** 
 * @ORM\ManyToMany(targetEntity="Role", inversedBy="users") 
 */ 
private $roles; 

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="roles") 
 */ 
private $users; 

是的,我遵循了本教程。登录后重定向使用哪种路径?它是
/vs/index
?顺便说一句,当你处理条令实体时,你应该使用
\doctor\Common\Util\Debug::dump($entity)
而不是
var\u dump($entity)
。对我有效,只要试一下就可以了。也许你可以发布整个用户和角色实体。也许是打字错误之类的傻事。并确保在数据库中为用户添加角色:)以下是我的注释:/***@ORM\manytomy(targetEntity=“role”,inversedBy=“users”)*/private$roles;/**@ORM\ManyToMany(targetEntity=“User”,mappedBy=“roles”)*/private$users;试着先改变这些
/** 
 * @ORM\ManyToMany(targetEntity="Role", inversedBy="users") 
 */ 
private $roles; 

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="roles") 
 */ 
private $users;