我正在尝试使用 DoctrineModule DoctrineObject 水合器来水合 3 个实体。我尝试对 Stdlib\ObjectProperty 水合器做同样的事情,我得到了预期的正确结果。
第一个实体:
Class Stable
{
/**
* @ORM\OneToMany(targetEntity="Rider", mappedBy="stable", cascade={"persist"})
*/
protected $riders;
}
第二:
Class Rider
{
/**
* @ORM\OneToMany(targetEntity="Horse", mappedBy="rider", cascade={"persist"})
*/
protected $horses;
}
第三:
Class Horse
{
/**
* @ORM\ManyToOne(targetEntity="Rider", inversedBy="horses")
* @ORM\JoinColumn(name="horse_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $rider;
}
我省略了 id 属性、getter 和 setter。
当我使用以下数据水合稳定时:
Stable
Rider1
Horse1
Horse2
Rider2
Horse3
Rider3
Horse1
Horse4
我得到了这个:
Stable
Rider1
Horse1
Horse4
Rider2
Horse1
Horse4
Rider3
Horse1
Horse4
什么是完全错误的。正如我之前所说,在使用 Stdlib\ObjectProperty hydrator 时,我得到的对象关系与给定数据中的对象关系相同。任何人都知道如何解决这个问题?