簡體   English   中英

Symfony2 - 訪問被拒絕

[英]Symfony2 - Access Denied

我正在為我的項目使用Symfony2,我創建了兩個頁面。 一個登錄頁面和一個索引頁面。 我已成功登錄管理員帳戶(使用ROLE_ADMIN )。
但是我收到了403 Forbidden頁面,其中包含以下錯誤:

錯誤 - 未捕獲的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_dump用戶。 我看到角色是空的:

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()

array (size=1)
  0 => 
    object(...\Entity\Role)[397]
      private 'id' => int 1
      private 'name' => string 'admin' (length=5)
      private 'role' => string 'ROLE_ADMIN' (length=10)
      private 'users' => 
        object(Doctrine\ORM\PersistentCollection)[398]
          private 'snapshot' => 
            array (size=0)

我做錯了什么?

學說關系注釋是錯誤的:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM