Ejemplo n.º 1
0
 /**
  * @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));
                 }
             }
         }
     }
 }