Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to convert Doctrine 2 entity persistent collection to array with Zend Framework 2

What is best way (easy) to convert Doctrine 2 entity persistent collection to array with Zend Framework 2? I want convert to array and later output it with JsonView. I can write function which use get_object_var but it is a problem when entity has next entity collection.

Regards.

like image 483
Łukasz Avatar asked Feb 28 '14 22:02

Łukasz


2 Answers

Not sure about Zend, but in SF2 + Doctrine you can use getValues() method.

$asArray = $persistentCollection->getValues();
like image 106
Aurelijus Rozenas Avatar answered Nov 02 '22 05:11

Aurelijus Rozenas


I'll decouple the answer in 2 parts, mainly because you haven't clarified enough if you want to solve purely the PersistentCollection or the entire graph serialization.

1- Assuming you already know how to solve Entity's serialization, the PersistentCollection can be turned into an array of Entities by calling toArray() method.

2- Assuming you don't, I suggest you to either use a pre-built library like JMS Serializer. If you want to create your own by hand, use the ClassMetadata instance that can be extracted from EntityManager->getClassMetadata(get_class($someEntity)) and iterating through fieldMappings and associationMappings properties.

like image 2
Guilherme Blanco Avatar answered Nov 02 '22 05:11

Guilherme Blanco