Php Symfony2-访问被拒绝
我在我的项目中使用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
角色\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;