(ZF2 lub S2 chyba nie różnią się w korzystaniu z hydratora D2)
Czy spotkaliście się z kaskadową hydracją?
$hydrator = $this->getServiceLocator()->get('DoctrineHydrator');
$data zawiera wielowymiarową tablicę z danymi w takiej formie w jakiej Doctrine te dane zwraca (czyli format tablicy jest odpowiedni aby wykonać na niej kaskadową hydrację).
$PlatformEntity to encja edytowanego/tworzonego rekordu.
Po przepuszczeniu encji przez hydrator powstają w niej odpowiednie zagnieżdżenia, czyli encje rekordów relacyjnych. To znaczy że hydrator wykrył dodatkowe dane i przygotował pod nie przestrzeń.
Jednak wszystkie encje na głębokości większej niż 1 nie są hydrowane...
Encje pobieram w taki sposób:
$PlatformEntity = $em->getRepository('Application\Entity\Platform')->find($data['id']); } else { $PlatformEntity = new Platform(); }
Hydrator tak:
'DoctrineHydrator' => function($sm){ return new \DoctrineModule\Stdlib\Hydrator\DoctrineObject($sm->get('Doctrine\ORM\EntityManager'), false); },