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());
 }
Exemple #2
0
 public function setUp()
 {
     parent::setUp();
     $source = new PhpArray($this->data);
     $source->setColumns([$this->colVolumne, $this->colEdition]);
     $this->source = $source;
 }