使用Doctrine,我的实体中有fetch = EAGER:
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;
为什么当我做“水合物阵列”时,它不起作用?
我为同一实体转储的屏幕(第二个是“水合物阵列”):
答案 0 :(得分:1)
使用水合作用模式Query::HYDRATE_ARRAY
,Doctrine将仅返回有关该行'行的信息。由于您的versions
属性不是字段而是集合,因此无法返回。
如果您想要收藏集,请改用对象(例如您的第一个屏幕截图)。
如果您确实需要序列化实体(返回多维数组而不是对象),请使用序列化程序。由于您正在使用Symfony,因此您可以轻松使用Symfony的Serializer Component。 JMSSerializerBundle是一种受欢迎的选择。