2012-09-15 79 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