/** * Creates query for given filters in stored in session * * @param array $sessionData Filters * @param Doctrine\ORM\Query\Expr $query Query operator * @param Doctrine\ORM\QueryBuilder $queryBuilder Query builder * * @return Doctrine\ORM\Query\Expr */ private function buildSessionFilters($sessionData, $query, $queryBuilder) { foreach ($sessionData as $key => $value) { if ($key) { if ($key == 'filterApproved') { $query->add($queryBuilder->expr()->eq('c.status', 0)); } else { $query->add($queryBuilder->expr()->eq('c.status', $value)); } } } return $query; }
/** * Define the Doctrine query * * @param string $index Field name * @param integer $relatedIndex Related index value * @param integer $offset Increment OPTIONAL * * @return \Doctrine\ORM\QueryBuilder */ protected function defineUpdateIndexQuery($index, $relatedIndex, $offset = 2) { $expr = new \Doctrine\ORM\Query\Expr(); return $this->createPureQueryBuilder('c', false)->update($this->_entityName, 'c')->set('c.' . $index, 'c.' . $index . ' + :offset')->andWhere($expr->gt('c.' . $index, ':relatedIndex'))->setParameter('offset', $offset)->setParameter('relatedIndex', $relatedIndex); }