addOrderBy('e.id', 'ASC'); return parent::orderQuery($action, $query, $request, $paginator); } protected function getQueryResult( string $action, Request $request, int $totalItems, PaginatorInterface $paginator, ?FilterOrderHelper $filterOrder = null, ) { if (0 === $totalItems) { return []; } if (!$filterOrder instanceof FilterOrderHelper) { return parent::getQueryResult($action, $request, $totalItems, $paginator, $filterOrder); } $queryString = $filterOrder->getQueryString(); $activeFilter = $filterOrder->getCheckboxData('activeFilter'); $nb = $this->repository->countFilteredResults($queryString, $activeFilter); $paginator = $this->getPaginatorFactory()->create($nb); return $this->repository->findFilteredResults( $queryString, $activeFilter, $paginator->getCurrentPageFirstItemNumber(), $paginator->getItemsPerPage() ); } protected function countEntities(string $action, Request $request, ?FilterOrderHelper $filterOrder = null): int { if (!$filterOrder instanceof FilterOrderHelper) { return parent::countEntities($action, $request, $filterOrder); } return $this->repository->countFilteredResults( $filterOrder->getQueryString(), $filterOrder->getCheckboxData('activeFilter') ); } protected function buildFilterOrderHelper(string $action, Request $request): ?FilterOrderHelper { return $this->getFilterOrderHelperFactory() ->create(self::class) ->addSearchBox(['label']) ->addCheckbox('activeFilter', [true => 'Active', false => 'Inactive'], ['Active']) ->build(); } }