/** * @param Criteria $criteria * * @return EntityRepositoryResult */ public function findByCriteria(Criteria $criteria) { $queryBuilder = $this->entityRepository()->createQueryBuilder('e')->select('e'); foreach ($criteria->fieldFilters() as $index => $fieldFilter) { $this->addFieldFilterToQuery($index, $queryBuilder, $fieldFilter); } $paginator = new Paginator($queryBuilder->getQuery(), false); $totalEntities = count($paginator); $pagesCount = ceil($totalEntities / $criteria->rowsPerPage()); return new EntityRepositoryResult($this->getPageResult($paginator, $criteria), $criteria->page(), $totalEntities, $criteria->rowsPerPage(), $pagesCount); }