Php 如何在symfony2中使用正则表达式显示mongo db区分大小写的数据
我正在对ajax调用执行搜索。我希望所有数据都以表格格式显示,忽略搜索框中键入的单词的大小写敏感性 例如: 无论用户键入“d”还是“d”,它都应该显示其中包含“demo/demo”字的所有数据 我已在symfony2中尝试了此查询: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
$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
字符串。。