/** * @param ApplyFilterConditionEvent $event */ public function onApplyFilterCondition(ApplyFilterConditionEvent $event) { /** @var Builder $qb */ $qb = $event->getQueryBuilder(); $conditionBuilder = $event->getConditionBuilder(); $this->computeExpression($qb, $conditionBuilder->getRoot()); }
/** * @param ApplyFilterConditionEvent $event */ public function onApplyFilterCondition(ApplyFilterConditionEvent $event) { $qb = $event->getQueryBuilder(); $conditionBuilder = $event->getConditionBuilder(); $this->parameters = array(); $expression = $this->computeExpression($qb, $conditionBuilder->getRoot()); if (null !== $expression) { $qb->{$this->whereMethod}($expression); } }
/** * @param ApplyFilterConditionEvent $event */ public function onApplyFilterCondition(ApplyFilterConditionEvent $event) { $qbAdapter = new DoctrineQueryBuilderAdapter($event->getQueryBuilder()); $conditionBuilder = $event->getConditionBuilder(); $this->parameters = array(); $expression = $this->computeExpression($qbAdapter, $conditionBuilder->getRoot()); if (null !== $expression && $expression->count()) { $qbAdapter->{$this->whereMethod}($expression); foreach ($this->parameters as $name => $value) { if (is_array($value)) { list($value, $type) = $value; $qbAdapter->setParameter($name, $value, $type); } else { $qbAdapter->setParameter($name, $value); } } } }