2012-09-15 80 views
0

我有一個用於搜索的Mongo ODM查詢,並且其中一個字段(Property Type)具有「All」值,因此搜索應該忽略其餘的值。然而如何忽略Doctrine/Mongo QueryBuilder搜索中的搜索字段?

$query = $dm->createQueryBuilder('SomeBundle:Listing') 
    ->select('id', 'title','saleOrRent') 
    ->field('residentialOrCommercial')->equals($residentialOrCommercial) 
    ->field('propertyType')->equals($propertyType) 
    ->getQuery(); 

我可以做精確的文本匹配時,有人選擇「全部」的屬性類型我怎麼在上面的查詢佔?我的意思是,當有人選擇「全部」時,我希望查詢完全忽略「propertyType」字段並返回所有值。

我知道我不是很清楚,但我想成爲。

有什麼建議嗎?

回答

1

只要做到:

$qb = $dm->createQueryBuilder('SomeBundle:Listing') 
    ->select('id', 'title','saleOrRent') 
    ->field('residentialOrCommercial')->equals($residentialOrCommercial); 

if ($propertyType != 'All') { 
    $qb->field('propertyType')->equals($propertyType); 
} 

$query = $qb->getQuery(); 
+0

謝謝SOOOOO多幫助我與這個技巧。我真的很感激它。 – jini