Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Doctrine/Mongo QueryBuilder搜索中忽略搜索字段?_Php_Mongodb_Symfony_Doctrine Orm - Fatal编程技术网

Php 如何在Doctrine/Mongo QueryBuilder搜索中忽略搜索字段?

Php 如何在Doctrine/Mongo QueryBuilder搜索中忽略搜索字段?,php,mongodb,symfony,doctrine-orm,Php,Mongodb,Symfony,Doctrine Orm,我有一个用于搜索的Mongo ODM查询,其中一个字段(属性类型)有一个“All”值,搜索应该忽略其余的值 $query = $dm->createQueryBuilder('SomeBundle:Listing') ->select('id', 'title','saleOrRent') ->field('residentialOrCommercial')->equals($residentialOrCommercial) ->fie

我有一个用于搜索的Mongo ODM查询,其中一个字段(属性类型)有一个“All”值,搜索应该忽略其余的值

$query = $dm->createQueryBuilder('SomeBundle:Listing')
     ->select('id', 'title','saleOrRent')
     ->field('residentialOrCommercial')->equals($residentialOrCommercial)
     ->field('propertyType')->equals($propertyType)
     ->getQuery();
但是,当有人在propertyType上选择“All”时,我可以进行精确的文本匹配。我如何在上面的查询中解释?我的意思是,当有人选择“All”时,我希望查询完全忽略“propertyType”字段并返回所有值

我知道我不是非常清楚,但我正在努力做到

有什么建议吗?

只要做:

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

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

$query = $qb->getQuery();

非常感谢你在这方面帮了我的忙。我真的很感激。