/** * Adds filters to a query builder * * @param QueryBuilder $qb * @param array|Criteria $filters Additional filtering criteria, e.g. ['allDay' => true, ...] * or \Doctrine\Common\Collections\Criteria */ protected function addFilters(QueryBuilder $qb, $filters) { if ($filters) { if (is_array($filters)) { $newCriteria = new Criteria(); foreach ($filters as $fieldName => $value) { $newCriteria->andWhere(Criteria::expr()->eq($fieldName, $value)); } $filters = $newCriteria; } if ($filters instanceof Criteria) { $qb->addCriteria($filters); } } }
/** * @param \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder $query * @param \Doctrine\Common\Collections\Criteria $criterio */ public function buscarPorCriterio($query, $criterio) { $query->addCriteria($criterio); }
/** * @param QueryBuilder $qb * @param Criteria $criteria */ protected function applyCriteriaToQb(QueryBuilder $qb, Criteria $criteria) { $qb->addCriteria($criteria); }