-1

我想找到加入的字段名称,但我找不到如何获取它。我有这样的场景。我有 2 个表,例如用户和角色。在用户实体中有一个角色字段,它是一个集合。我需要一个获取参数相关对象(角色)的方法,它必须返回角色 ID,它是用户的外键。我找不到任何方法。

4

1 回答 1

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 连接来检索原始结果。

于 2013-06-21T10:23:27.260 回答