Лучший способ конвертировать непрерывную коллекцию объектов Doctrine 2 в массив с Zend Framework 2

Каков наилучший способ (простой) конвертировать непрерывную коллекцию объектов Doctrine 2 в массив с Zend Framework 2? Я хочу преобразовать в массив и позже вывести его с помощью JsonView. Я могу написать функцию, которая использует get_object_var, но это проблема, когда сущность имеет следующую коллекцию сущностей.

С уважением.

Ответы

Ответ 1

Не уверен в Zend, но в SF2 + Doctrine вы можете использовать метод getValues().

$asArray = $persistentCollection->getValues();

Ответ 2

Я отвяжу ответ в 2 частях, главным образом потому, что вы недостаточно прояснили, если хотите решить чисто PersistentCollection или всю сериализацию графа.

1- Предполагая, что вы уже знаете, как решить сериализацию Entity, PersistentCollection можно преобразовать в массив Entities, вызвав метод toArray().

2 Предполагая, что вы этого не сделаете, я предлагаю вам либо использовать предварительно встроенную библиотеку, например JMS Serializer. Если вы хотите создать свой собственный вручную, используйте экземпляр ClassMetadata, который можно извлечь из EntityManager- > getClassMetadata (get_class ($ someEntity)) и итерации через свойства fieldMappings и associationMappings.