/** * Replaces a single having clause because scalar types are not supported in doctrine paginator by default * * @param Query\Expr\Comparison $comparison * @param ColumnCollection $columns * @param QueryBuilder $queryBuilder */ protected function replaceSingleHavingClause(Query\Expr\Comparison $comparison, ColumnCollection $columns, QueryBuilder $queryBuilder) { $source = $columns->get($comparison->getLeftExpr())->getSource(); $param = $comparison->getRightExpr(); $operator = $this->getOperator($comparison->getOperator()); $expression = $queryBuilder->expr()->{$operator}($source, $param); $queryBuilder->andWhere($expression); }
/** * {@inheritdoc} */ public function setColumns(array $columns = []) { $collection = new ColumnCollection(); foreach ($columns as $alias => $source) { $collection->add(new Column(['alias' => $alias, 'source' => $source])); } $this->dataset->setColumns($collection); }
/** * Adds additional conditions to query * * @param QueryBuilder $queryBuilder * @param ColumnCollection $columns */ protected function setColumnConditions(QueryBuilder $queryBuilder, ColumnCollection $columns) { foreach ($this->conditions->all() as $condition) { $column = $columns->get($condition->getIdentifier()); $this->addColumnConditionToQueryBuilder($queryBuilder, $column, $condition); } }
public function addColumn(ColumnInterface $column) { $this->columns->add($column); }