serializer = $serializer; } // protected function customizeQuery(string $action, Request $request, $query): void // { // $query->where( // $query->expr()->orX( // $query->expr()->gt('e.desactivationDate', ':now'), // $query->expr()->isNull('e.desactivationDate') // ) // ); // $query->setParameter('now', new DateTimeImmutable()); // } // protected function getQueryResult(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query) // { // // In order to work, this hydrator only works with // // entities having the field "children" set up. // return $query // ->getQuery() // ->setHint(Query::HINT_INCLUDE_META_COLUMNS, true) // ->getResult(FlatHierarchyEntityHydrator::LIST); // } // protected function onPostIndexBuildQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query): ?Response // { // $query // ->orderBy('GET_JSON_FIELD_BY_KEY(e.title, :locale)', 'ASC') // ->setParameter(':locale', $request->getLocale()); // return null; // } // protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator, $_format) // { // $query->addOrderBy('ordering', 'ASC'); // return $query; // } /* * @Route("/api/1.0/person/social-work/social-issue.json", name="social_work_social_issue") */ public function indexAction(Request $request): JsonResponse { $this->denyAccessUnlessGranted('ROLE_USER'); $qb = $this->getDoctrine()->getManager()->createQueryBuilder(); $qb->select('si')->from(SocialIssue::class, 'si'); $qb->where( $qb->expr()->orX( $qb->expr()->gt('si.desactivationDate', ':now'), $qb->expr()->isNull('si.desactivationDate') ) ); $qb->setParameter('now', new DateTimeImmutable()); $qb->addOrderBy('si.ordering', 'ASC'); $qb->getQuery() ->setHint(Query::HINT_INCLUDE_META_COLUMNS, true) ->getResult(FlatHierarchyEntityHydrator::LIST); $socialIssues = $qb->getQuery()->getResult(); return new JsonResponse( $this->serializer->serialize(['count' => count($socialIssues), 'results' => $socialIssues], 'json', ['groups' => ['read']]), JsonResponse::HTTP_OK, [], true ); } }