簡體   English   中英

Doctrine OneToMany 關系的問題

[英]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而不是ArrayCollectioninitialized屬性設置為 false。

在該集合上調用任何方法時,doctrine 會觸發初始化集合並填充它所需的查詢。

只有調用isEmpty才能檢查集合是否為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM