/** @Entity */
class First
{
/** @OneToMany(targetEntity="Second", mappedBy="parent") */
protected $secondList;
// access methods here
public function __construct()
{
$this->secondList = new ArrayCollection();
}
}
/** @Entity */
class Second
{
/**
* @ManyToOne(targetEntity="First", inversedBy="secondList")
* @JoinColumn(name="First_id", referencedColumnName="Id")
*/
protected $parent;
}
下面是從Second
類考慮ArrayCollection $secondList
元素的問題。 Second
ManyToOne關係正常工作。也許我在初始化持久性方面做了錯誤(因爲SQL基礎中的First_Id
始終是null
)。學說2:一對多關係
$first = new Second();
$second = new First();
$first->getSecond()->add($second);
$em->persist($second);
$em->persist($first);
有什麼建議嗎?
好吧,這真的幫助我設置第二個表記錄中的First_Id列。但是,試圖獲取First類對象並不會將Second取到「ArrayCollection」。我只有空集合:| –
所以在數據庫中一切都很好?你如何獲取這些東西?你如何檢查你有什麼?因爲當你調用$ first-> getSecond()時,它應該加載它。 – Pinetree
事實上,這就是我要做的。 DB是好的(最終模式是由doctrine tool-kit創建的)。我使用來自'EntityManager'類的find()或getRepository()方法獲取對象。對象被正確創建,即使我只有'Second'類對象,我與'First'相關的類對象有充分的關係。噢,我用'serialize($ first-> getSecondList() - > current())'檢查這個列表,'$ takedSecond-> getSomeOtherValue()'顯示錯誤在非對象變量上使用方法。 –