示例#1
0
 public function findByCriteria(Criteria $criteria)
 {
     $query_builder = $this->getEntityRepository()->createQueryBuilder('e')->select('e');
     foreach ($criteria->getFieldFilters() as $index => $field_filter) {
         $this->addFieldFilterToQuery($query_builder, $index, $field_filter);
     }
     foreach ($criteria->getFieldOrders() as $field_order) {
         $this->addFieldOrderToQuery($query_builder, $field_order);
     }
     $paginator = new Paginator($query_builder->getQuery(), false);
     $total_entities = $paginator->count();
     $pages_count = ceil($total_entities / $criteria->getRowsPerPage());
     return new CriteriaResult($this->getPageResult($paginator, $criteria), $total_entities, $criteria->getPage(), $criteria->getRowsPerPage(), $pages_count);
 }