0
$hydrator = $this->getServiceLocator()->get('DoctrineHydrator');
$hydrator->hydrate((array) $data, $PlatformEntity);
Hydrator hydrate只有1级的阵列。
$hydrator = $this->getServiceLocator()->get('DoctrineHydrator');
$hydrator->hydrate((array) $data, $PlatformEntity);
Hydrator hydrate只有1级的阵列。
阵列水合不是实现这种情况的最佳方式。相同的情况在这里:
Person
- id_person
- name
- child //self refering
阵列水合只能选择第一级。我解决它采取的这两个选项之一:
使用left join
协会
$query = $entityManager->createQueryBuilder()
->select('p1, p2, p3, p4, p5, p6')
->from('Entity\Person', 'p1')
->leftJoin('p1.child', 'p2')
->leftJoin('p2.child', 'p3')
->leftJoin('p3.child', 'p4')
->leftJoin('p4.child', 'p5')
->leftJoin('p5.child', 'p6')
->createQuery();
,然后,使用数组水化。
创建您自己的递归函数以手动添加数组中的每个元素。