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

时间:2015-10-13 06:45:28

标签: php regex mongodb symfony

我正在执行ajax调用搜索。我希望所有数据都以表格格式显示,而忽略了在搜索框中输入的单词的区分大小写。

示例:

无论用户输入“d”还是“D”,它都应显示包含“demo / Demo”字样的所有数据。

我在symfony2中尝试了这个查询:

   public function admin_getprojects()
   {

        $projects = $this->Project->find('all',array(
            'contain'=>array('UsersProjects'=>array('User'),
                            'Task')
        ));
        $this->set('projects', $projects);

        $projects= json_encode($projects);
        echo $projects;
        exit();

    }

但是这个显示区分大小写的数据。如果我输入'D',它不会显示'demo'的数据。

1 个答案:

答案 0 :(得分:0)

对于正则表达式查询,您应该使用QueryBuilder(ODM之一)。以下是文档文章:http://doctrine-mongodb-odm.readthedocs.org/en/latest/reference/query-builder-api.html由于Mongo中没有LIKE运算符,您必须创建如下查询:

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

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