我有 3 个简单的表:用户、角色、具有多对多关系的 user_x_role。我有 2 个实体:用户和角色。用户实体具有带有关系注释的 $userRoles 属性。在控制器中,我需要获取所有具有特定角色的用户。但我不知道如何在控制器中使用 JOIN。当前错误代码:
$role = $this->getDoctrine()->getRepository('TestBackEndBundle:Role');
$roles = $role->findBy(array('name' => 'ROLE_PARTNER'));
$user = $this->getDoctrine()->getRepository('TestBackEndBundle:User');
$partners = $user->findBy(array('userRoles' => $roles));
它抛出“未定义的索引:joinColumns in ...”。但我在用户实体中有 joinColumns:
/**
* @ORM\ManyToMany(targetEntity="Role")
* @ORM\JoinTable(name="user_x_role",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")}
* )
* @var ArrayCollection
*/
protected $userRoles;