Hello. Faced a problem, how to specify when selecting a field in a query builder that are binding (in my case, many to many)?
User Entity
... /** * @ORM\ManyToMany(targetEntity="Role", inversedBy="users") * */ protected $roles; Role Essence
... /** * @ORM\ManyToMany(targetEntity="User", mappedBy="roles") */ private $users; The query is built in the User entity repository as follows:
public function loadListOfUsers($fields = array('u')){ $query = $this ->createQueryBuilder('u') ->select($fields); $users = $query->getQuery()->getResult(); return $users; } In the controller:
public function getAction() { $fields = array( 'u.id', 'u.username', 'u.email', 'u.avatar', 'u.isActive', 'u.roles', ); $restresult = $this->getDoctrine()->getRepository('AppUserBundle:User')->loadListOfUsers($fields); if ($restresult === null) { return new View("there are no users exist", Response::HTTP_NOT_FOUND); } return $restresult; } If you remove u.roles, everything is ok. But you need to get and roles, how can this be implemented?