你是如何建立你的实体的?您必须在 User 实体和 Group 实体上使用 ManyToMany 关系。比你可以查询这些实体相对容易
用户实体
/**
* @var Group
*
* @ORM\ManyToMany(targetEntity="Group", mappedBy="users")
* @ORM\JoinTable(name="user_group",
* joinColumns={
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="group_id", referencedColumnName="id")
* }
* )
*/
private $groups;
集团实体
/**
* @var User
*
* @ORM\ManyToMany(targetEntity="User", inversedBy="groups")
*/
private $users;
不要忘记在构造函数中初始化 $users 和 $groups var
public function __construct
{
$this->groups = new ArrayCollection();
}
现在您可以查询这些实体
在控制器中
$this->getDoctrine()->getRepository('YourBundle:User')->FindByGroup($yourGroupId);
或者如果你想使用 QueryBuilder
$q = $this->getDoctrine()->getRepository('YourBundle:User')
->createQueryBuilder('user')
->select('user.email')
->innerJoin('user.group', 'group')
->where('group.id = ?1')
->setParameter(1, $yourGroupId)
和文档:http ://docs.doctrine-project.org/en/latest/reference/query-builder.html