2016-11-19 28 views
0

我的PHP應用程序中有一個加載的Doctrine實體。如何檢查是否填充了Doctrine的數組集合?

如何檢查Doctrine的數組集合是否已經填充數據而不觸發數據庫請求?

我需要這在我的實體序列化邏輯。


我不知道該用isEmpty()的提出的解決方案是一個很好的,因爲我不知道它是否會觸發數據庫呼叫。可以?

+0

的[檢查的ArrayCollection是空的(http://stackoverflow.com/questions/17643047/check-if-arraycollection-is-empty) –

+0

收集可能在兩種情況下是空的可能的複製,當數據庫中沒有相關實體,並且尚未加載相關實體。我對第二種情況感興趣。我不確定提供的答案,即'isEmpty()'實際上是否觸發數據庫調用。 –

回答

0
public function isCollectionPopulated() 
{ 
    if ($this->collection instanceof PersistentCollection) { 
     return $this->collection->isInitialized(); 
    } 

    // else collection instance of ArrayCollection and already populated. 
    return true; 
}