Join 原则2获取连接字段名
我想查找加入的字段名,但找不到如何获取它。我有一个这样的场景。我有两个表用于实例用户和角色。在用户实体中有一个角色字段,它是一个集合。我需要一个方法,它是获取一个参数相关对象(角色),它必须返回角色的id,这是用户的外键。我找不到任何方法 假设您的实体声明如下:Join 原则2获取连接字段名,join,doctrine-orm,Join,Doctrine Orm,我想查找加入的字段名,但找不到如何获取它。我有一个这样的场景。我有两个表用于实例用户和角色。在用户实体中有一个角色字段,它是一个集合。我需要一个方法,它是获取一个参数相关对象(角色),它必须返回角色的id,这是用户的外键。我找不到任何方法 假设您的实体声明如下: /** * @ORM\Entity */ class User { /** * @ORM\ManyToMany(targetEntity="Role") */ private $roles;
/**
* @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
// ...
}
您可以调用以检索ID:
$user = $this->getUser();
$roleIDs = $user->getRoles()->map(function (Role $role) {
return $role->getId();
});
另一种选择是使用Doctrine连接检索原始结果。我不需要id,我需要外键的列名。我必须获得“角色id”@弗洛朗