2011-09-04 82 views
0
function search_event($parish, $genre, $pricerange) 
{ 
    $query = $this->em->createQuery('SELECT e from Events e WHERE e.parish = :parish AND e.genre = :genre'); 
    $query->setParameter('parish', $parish); 
    $query->setParameter('genre', $genre); 
    $result = $query->getResult();  
    return $result; 
} 

在上面的例子中,我如何測試$ result是否有效?如何測試Doctrine2 DQL查詢結果是否有效?

+1

定義「有效」。你的意思是一個具有一個或多個結果的集合? – adlawson

+0

是的,這就是我的意思。抱歉 – jini

回答

1

如果getResult()返回(即如果它沒有拋出異常),則$result有效。 (它總是一組結果;如果沒有結果,它可以是空的)。

如果發生任何錯誤(格式錯誤的查詢,連接重置或其他任何事情),則以太網createQuery()getResult()將引發異常。

2

有很多事情可以檢查返回的集合中是否存在實體。有關可用方法的完整列表,請參閱ArrayCollection

// Is result empty? 
$result->isEmpty(); 

// Is result count > 0? 
0 < $result->count(); 
0 < count($result); 

// Get the first entitiy 
$first = $result->first(); // $first === false if none