/** * @param \Claroline\CoreBundle\Rule\Constraints\AbstractConstraint[] $constraints * @param array $restrictions * * @return \Doctrine\ORM\QueryBuilder */ protected function buildQuery(array $constraints, array $restrictions = null) { /** @var \Doctrine\ORM\QueryBuilder $queryBuilder */ $queryBuilder = $this->logRepository->createQueryBuilder('l')->orderBy('l.dateLog'); foreach ($restrictions as $key => $restriction) { $queryBuilder->andWhere(sprintf('l.%s = :%s', $key, $key))->setParameter($key, $restriction); } foreach ($constraints as $constraint) { $queryBuilder = $constraint->getQuery($queryBuilder); } return $queryBuilder; }