どのようにエンティティを構築しましたか? 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 変数を初期化することを忘れないでください
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