Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 如何在symfony2中使用正则表达式显示mongo db区分大小写的数据_Php_Regex_Mongodb_Symfony - Fatal编程技术网

Php 如何在symfony2中使用正则表达式显示mongo db区分大小写的数据

Php 如何在symfony2中使用正则表达式显示mongo db区分大小写的数据,php,regex,mongodb,symfony,Php,Regex,Mongodb,Symfony,我正在对ajax调用执行搜索。我希望所有数据都以表格格式显示,忽略搜索框中键入的单词的大小写敏感性 例如: 无论用户键入“d”还是“d”,它都应该显示其中包含“demo/demo”字的所有数据 我已在symfony2中尝试了此查询: $clientDetails = $dm->getRepository('AuditSuperFirmClientBundle:FirmClient')->findBy(array('clientCompanyName' => array('$re

我正在对ajax调用执行搜索。我希望所有数据都以表格格式显示,忽略搜索框中键入的单词的大小写敏感性

例如:

无论用户键入“d”还是“d”,它都应该显示其中包含“demo/demo”字的所有数据

我已在symfony2中尝试了此查询:

$clientDetails = $dm->getRepository('AuditSuperFirmClientBundle:FirmClient')->findBy(array('clientCompanyName' => array('$regex' => $name)));

但这会显示区分大小写的数据。如果我键入“D”,它不会显示“demo”的数据。

对于正则表达式查询,您应该使用
QueryBuilder
(ODM)。这是一篇文档文章:由于Mongo中没有
LIKE
操作符,因此您必须创建如下查询:

$qb->field($field)->equals(new \MongoRegex('/.*demo.*/i'));

请注意
i
标志,因为这是使查询不区分大小写的原因。

但我使用的是mongo db。这对mongo有效吗?空白表没有找到结果:(你能提供你正在使用的确切代码吗?最好是从Beggint QueryBuilder到flush,或者是一个完整的函数/方法,如果不是太长的话。$name=$request->get('fundName');$dm=$this->get('doctrine_mongodb')->getManager();$qb=$dm->createQueryBuilder('AuditSuperFormClientBundle:FirmClient');$clientDetails=$qb->field('clientCompanyName')->等于(new\MongoRegex('/'.$name.'/i'))->getQuery()->execute();返回$this->呈现('AuditSuperFormClientBundle:FirmClient:FirmClient.html.twig',数组('clientDetails'=>$clientDetails,);您忘记了$name前后的
*
。应该是这样的:
$clientDetails=$qb->field('clientCompanyName')->等于(new\MongoRegex('/.'.$name.*/i')->getQuery()->execute()
*
部分表示
$name
可以只是字符串的一部分。没有它,它只匹配精确的
$name
字符串。。