/** * {@inheritDoc} */ public function evaluate(Rule $rule) { $environment = new DoctrineEnvironment(); // use exotic alias because we use entity's own repository $this->qb = $this->em->getRepository($this->getEntity($rule))->createQueryBuilder('a'); $environment->queryBuilder = $this->qb; return $environment->evaluate($rule); }
/** * Get row query * * @param Opifer\RulesEngine\Condition $conditions * @param string $entity * * @return QueryBuilder */ public function getRowQuery($conditions, $entity) { $qb = $this->em->getRepository(get_class($entity))->createQueryBuilder('a'); // use exotic alias because we use entity's own repository $environment = new DoctrineEnvironment(); $environment->queryBuilder = $qb; $environment->evaluate($conditions); return $qb; }