public function execute() { $hydrator = new DoctrineHydrator($this->getEntityManager()); $dataPrepared = []; foreach ($this->getData() as $row) { $dataExtracted = $hydrator->extract($row); $rowExtracted = []; foreach ($this->getColumns() as $column) { /* @var $column \ZfcDatagrid\Column\AbstractColumn */ $part1 = $column->getSelectPart1(); $part2 = $column->getSelectPart2(); if (null === $part2) { if (isset($dataExtracted[$part1])) { $rowExtracted[$column->getUniqueId()] = $dataExtracted[$part1]; } } else { // NESTED if (isset($dataExtracted[$part1])) { $dataExtractedNested = $hydrator->extract($dataExtracted[$part1]); if (isset($dataExtractedNested[$part2])) { $rowExtracted[$column->getUniqueId()] = $dataExtractedNested[$part2]; } } } } $dataPrepared[] = $rowExtracted; } $source = new SourceArray($dataPrepared); $source->setColumns($this->getColumns()); $source->setSortConditions($this->getSortConditions()); $source->setFilters($this->getFilters()); $source->execute(); $this->setPaginatorAdapter($source->getPaginatorAdapter()); }
public function setUp() { parent::setUp(); $source = new PhpArray($this->data); $source->setColumns([$this->colVolumne, $this->colEdition]); $this->source = $source; }