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; } }