/** * @param array $subColumn * @param Column \APY\DataGridBundle\Grid\Column\Column */ protected function addReferencedColumnn(array $subColumn, Column $column) { $this->referencedColumns[$subColumn[0]][] = $subColumn[1]; if ($column->isFiltered()) { $helperQuery = $this->manager->createQueryBuilder($this->referencedMappings[$subColumn[0]]); $filters = $column->getFilters('document'); foreach ($filters as $filter) { $operator = $this->normalizeOperator($filter->getOperator()); $value = $this->normalizeValue($filter->getOperator(), $filter->getValue()); $helperQuery->field($subColumn[1])->{$operator}($value); $this->prepareQuery($this->query); $cursor = $helperQuery->getQuery()->execute(); foreach ($cursor as $resource) { if ($cursor->count() > 0) { $this->query->select($subColumn[0]); } if ($cursor->count() == 1) { $this->query->field($subColumn[0])->references($resource); } else { $this->query->addOr($this->query->expr()->field($subColumn[0])->references($resource)); } } } } }