我想找到加入的字段名称,但我找不到如何获取它。我有这样的场景。我有2个表例如用户和角色。在用户实体中,存在Roles字段,该字段是集合。我需要一个获取参数相关对象(Roles)的方法,它必须返回role_id,这是用户的外键。我找不到任何方法。
答案 0 :(得分: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();
});
另一种选择是使用Doctrine连接来检索原始结果。