[英]Issue with Doctrine OneToMany relationship
我對 doctrine 關系有疑問。 我嘗試不同的方法,但任何方法都行不通。 想法是我有一個新聞實體,每條新聞都應該有很多評論。 所以我接下來嘗試:
新聞實體:
/**
* @ORM\OneToMany(targetEntity="App\ORM\Entity\NewsComment", mappedBy="news")
*/
protected \Doctrine\Common\Collections\Collection $comments;
/**
* News constructor.
*/
public function __construct() {
$this->comments = new ArrayCollection();
}
和 NewsComment 實體:
/**
* @ORM\ManyToOne(targetEntity="App\ORM\Entity\News", inversedBy="comments")
*/
protected \App\ORM\Entity\News $news;
每個實體也有自己的 get 和 set 方法。
但是,當我收到新聞實體時,可以獲取評論集合,但它總是空的。 另一方面,我可以獲取任何 NewsComment 實體並從該 News 實體中獲取。 它工作正常。 但不是以另一種方式。
我的代碼有什么問題嗎?
Doctrine 默認情況下將擁有(非反轉)集合設置為惰性。
當通過數據庫檢索實體時,您應該看到一個空的PersistentCollection
而不是ArrayCollection
, initialized
屬性設置為 false。
在該集合上調用任何方法時,doctrine 會觸發初始化集合並填充它所需的查詢。
只有調用isEmpty
才能檢查集合是否為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.