2016-11-19 34 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; 
}