getDoctrine()->getManager(); $sql = 'SELECT c FROM ChillCalendarBundle:CalendarRange c WHERE NOT EXISTS (SELECT cal.id FROM ChillCalendarBundle:Calendar cal WHERE cal.calendarRange = c.id)'; if ($request->query->has('user')) { $user = $request->query->get('user'); $sql = $sql . ' AND c.user = :user'; $query = $em->createQuery($sql) ->setParameter('user', $user); } else { $query = $em->createQuery($sql); } $results = $query->getResult(); return $this->json(['count' => count($results), 'results' => $results], Response::HTTP_OK, [], ['groups' => ['read']]); //TODO use also the paginator, eg return $this->serializeCollection('get', $request, $_format, $paginator, $results); } }