I have two entities, Group and User:
class Group
{
/**
* @ORM\ManyToMany(targetEntity="Group", inversedBy="groups")
* @ORM\JoinTable(name="admin_group_user",
* joinColumns={@ORM\JoinColumn(name="fk_group", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="fk_user", referencedColumnName="id")}
* )
*/
protected $users;
...
}
class User
{
/**
* @ORM\ManyToMany(targetEntity="Group", inversedBy="users")
* @ORM\JoinTable(name="admin_group_user",
* joinColumns={@ORM\JoinColumn(name="fk_user", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="fk_group", referencedColumnName="id")}
* )
*/
protected $groups;
...
}
I would like to get result like Group 1 has user A, user B, user C Group 2 has user D, user E, user F.
Generally something like
SELECT admin_group.id AS group_id, admin_group.name, agu.fk_user, fu.username
FROM admin_group
JOIN admin_group_user agu ON (admin_group.id = agu.fk_group)
JOIN front_user fu ON (agu.fk_user = fu.id);
Does anyone know how to achieve this with Doctrine?