With Doctrine, I have fetch=EAGER in my entity :
class TrainingOrganization
{
/**
* @var TrainingOrganizationVersion[]|ArrayCollection
*
* @ORM\OneToMany(
* targetEntity="AppBundle\Entity\TrainingOrganizationVersion",
* mappedBy="trainingOrganization",
* cascade={"persist"},
* fetch="EAGER"
* )
* @ORM\OrderBy({"id" = "ASC"})
* @Assert\Valid()
* @Versionable
*/
private $versions;
Why when i do "hydrate array" it does not work ?
Screen of my dump for same entity (Second is "Hydrate array") :
With Hydration mode Query::HYDRATE_ARRAY
, Doctrine will only return information about that 'row'. Since your versions
attribute is not a field but a collection, it won't be returned.
If you want to have Collections included, use Objects instead (like your first screenshot).
If you really need your entities serialized (returning a multidimensional array instead of objects), use a serializer. Since you're using Symfony, you can easily use Symfony's Serializer Component. The JMSSerializerBundle is a popular alternative.