Example #1
0
 /**
  * @param AbstractQueryBuilder $query
  *
  * @return AbstractQueryBuilder
  */
 private function applyFilters(AbstractQueryBuilder $query)
 {
     //GroupBy is only applicable to Select
     if ($query instanceof Select) {
         if (isset($this->groupByFields)) {
             $query->groupBy($this->groupByFields);
         }
         $this->joinRelationsToQuery($this->entity, $query, $this->with);
     }
     if (isset($this->where)) {
         $query->where($this->where);
     }
     foreach ($this->orderByFields as $field) {
         list($fieldName, $order) = $field;
         $query->orderBy($fieldName, $order);
     }
     if (empty($this->with)) {
         //Limits for joined queries are handled in a different way
         if (isset($this->limit)) {
             $query->setMaxResults($this->limit);
         }
         if (isset($this->offset)) {
             $query->setFirstResult($this->offset);
         }
     }
     return $query;
 }