2
我正在嘗試使用DoctrineModule DoctrineObject水合物來水化3個實體。 我試圖用Stdlib \ ObjectProperty hydrator來做同樣的事情,並且我得到了預期的正確結果。DoctrineModule DoctrineObject水合物 - 嵌套集合被覆蓋
一是實體:
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時,我獲得了與給定數據中相同的對象關係。 任何人都知道如何解決這個問題?