protected applyCriteria ( Doctrine\ORM\QueryBuilder $queryBuilder, array $criteria = [] ) | ||
$queryBuilder | Doctrine\ORM\QueryBuilder | |
$criteria | array |
protected function applyCriteria(QueryBuilder $queryBuilder, array $criteria = [])
{
foreach ($criteria as $property => $value) {
$name = $this->getPropertyName($property);
if (null === $value) {
$queryBuilder->andWhere($queryBuilder->expr()->isNull($name));
} elseif (is_array($value)) {
$queryBuilder->andWhere($queryBuilder->expr()->in($name, $value));
} elseif ('' !== $value) {
$parameter = str_replace('.', '_', $property);
$queryBuilder->andWhere($queryBuilder->expr()->eq($name, ':' . $parameter))->setParameter($parameter, $value);
}
}
}
protected function applyCriteria(QueryBuilder $queryBuilder, array $criteria = null) { if (isset($criteria['groups'])) { $queryBuilder->innerJoin($this->getAlias() . '.machine', 'm', 'WITH', $this->getAlias() . '.machine = m.id')->innerJoin('m.groups', 'g', 'WITH', $queryBuilder->expr()->andX($queryBuilder->expr()->in('g.id', $criteria['groups']))); unset($criteria['groups']); } parent::applyCriteria($queryBuilder, $criteria); }