/** * @param Criteria $criteria */ public function addCriteria(Criteria $criteria) { if (in_array($criteria->getType(), array(Criteria::TYPE_SPECIAL_LIMIT, Criteria::TYPE_SPECIAL_OFFSET))) { $this->criteria[$criteria->getType()] = $criteria; } else { $this->criteria[] = $criteria; } }
/** * @dataProvider dataProviderForTestConstructorWithValidArguments * * @param string $type * @param string $key * @param mixed $data */ public function testConstructorWithValidArguments($type, $key, $data) { $this->testedObject = new Criteria($type, $key, $data); $this->assertInstanceOf(Criteria::class, $this->testedObject); $this->assertSame($type, $this->testedObject->getType()); $this->assertSame($key, $this->testedObject->getKey()); $this->assertSame($data, $this->testedObject->getValue()); }
/** * @inheritdoc */ public function execute($queryBuilder, Criteria $criteria) { if ($criteria->getType() !== self::$commandName) { return false; } /** @var QueryBuilder $queryBuilder */ $queryBuilder->setMaxResults($criteria->getValue()); return true; }
/** * @inheritdoc */ public function execute($queryBuilder, Criteria $criteria) { if ($criteria->getType() !== self::$commandName) { return false; } /** @var QueryBuilder $queryBuilder */ $aliases = $queryBuilder->getRootAliases(); $columnName = $criteria->getKey(); $preparedColumnName = reset($aliases) . '.' . $columnName; $queryBuilder->addOrderBy($preparedColumnName, $criteria->getValue()); return true; }
/** * @inheritdoc */ public function execute($queryBuilder, Criteria $criteria) { if ($criteria->getType() !== self::$commandName) { return false; } /** @var QueryBuilder $queryBuilder */ $aliases = $queryBuilder->getRootAliases(); $columnName = $criteria->getKey(); $preparedColumnName = reset($aliases) . '.' . $columnName; $param = ':' . $columnName . 'FilterByMax'; $queryBuilder->andWhere($queryBuilder->expr()->lte($preparedColumnName, $param))->setParameter($param, $criteria->getValue()); return true; }
/** * @inheritdoc */ public function execute($queryBuilder, Criteria $criteria) { if ($criteria->getType() !== self::$commandName) { return false; } /** @var QueryBuilder $queryBuilder */ $aliases = $queryBuilder->getRootAliases(); $columnName = $criteria->getKey(); $preparedColumnName = reset($aliases) . '.' . $columnName; $paramLeft = ':' . $columnName . 'FilterByBetweenLeft'; $paramRight = ':' . $columnName . 'FilterByBetweenRight'; $queryBuilder->andWhere($queryBuilder->expr()->between($preparedColumnName, $paramLeft, $paramRight))->setParameters([$paramLeft => $criteria->getValue()[0], $paramRight => $criteria->getValue()[1]]); return true; }
/** * @inheritdoc */ public function execute($queryBuilder, Criteria $criteria) { if ($criteria->getType() !== self::$commandName) { return false; } /** @var QueryBuilder $queryBuilder */ $aliases = $queryBuilder->getRootAliases(); $rootAlias = reset($aliases); $columns = []; $values = (array) $criteria->getKey(); foreach ($values as $columnName) { $columns[] = $rootAlias . '.' . $columnName; } if (!empty($columns)) { $queryBuilder->select($columns); } return true; }