2013-06-21 74 views
-1

我想查找連接的字段名稱,但找不到如何獲取它。我有這樣的場景。我有2個用戶和角色的表。在用戶實體中有Roles字段,它是一個集合。我需要一個獲取參數相關對象(角色)的方法,並且它必須返回作爲用戶外鍵的role_id。我沒有找到任何方法。學說2獲取連接字段名稱

回答

0

假設你的實體聲明如下:

/** 
* @ORM\Entity 
*/ 
class User 
{ 
    /** 
    * @ORM\ManyToMany(targetEntity="Role") 
    */ 
    private $roles; 

    /** 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getRoles() 
    { 
     return $this->roles; 
    } 

    // Other fields and methods 
    // ... 
} 

/** 
* @ORM\Entity 
*/ 
class Role 
{ 
    /** 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    // Other fields and methods 
    // ... 
} 

您可以撥打Collection#map()檢索的ID:

$user = $this->getUser(); 
$roleIDs = $user->getRoles()->map(function (Role $role) { 
    return $role->getId(); 
}); 

另一種選擇是使用學說的連接來獲取原始結果。

+0

我不需要id,我需要外鍵的列名。我在「角色ID」我必須獲得。 @Florent – GirginSoft