validateAuthentication(); $term = $request->query->get('term'); $page = (int) $request->query->get('page', 1); $perPage = (int) $request->query->get('perPage', 30); $qb = $entryRepository->getBuilderForSearchByUser( $this->getUser()->getId(), $term, null ); $pagerAdapter = new DoctrineORMAdapter($qb->getQuery(), true, false); $pager = new Pagerfanta($pagerAdapter); $pager->setMaxPerPage($perPage); $pager->setCurrentPage($page); $pagerfantaFactory = new PagerfantaFactory('page', 'perPage'); $paginatedCollection = $pagerfantaFactory->createRepresentation( $pager, new HateoasRoute( 'api_get_search', [ 'term' => $term, 'page' => $page, 'perPage' => $perPage, ], true ) ); return $this->sendResponse($paginatedCollection); } }