Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Mysql 条令查询生成器_Mysql_Symfony_Doctrine Orm_Query Builder - Fatal编程技术网

Mysql 条令查询生成器

Mysql 条令查询生成器,mysql,symfony,doctrine-orm,query-builder,Mysql,Symfony,Doctrine Orm,Query Builder,我正在使用symfony3.4中的原则2,我有一个复杂的查询: $query = $this->createQueryBuilder( 'SELECT id FROM AppBundle:Room WHERE id NOT IN ( SELECT room_id FROM AppBundle:Bookings WHERE NOT ( checkOut <= :check_in OR checkIn >= :check_out

我正在使用symfony3.4中的原则2,我有一个复杂的查询:

$query = $this->createQueryBuilder(
                        'SELECT id FROM AppBundle:Room  WHERE id NOT IN ( SELECT room_id FROM AppBundle:Bookings  WHERE  NOT ( checkOut <= :check_in OR checkIn >= :check_out ) ) ORDER BY id'
                )
                ->setParameter('check_in', $request->query->get('check-in'))
                ->setParameter('check_out', $request->query->get('check-out'))
                ->getQuery();

        return $rooms = $query->execute() ;

createQueryBuilder方法需要一个字符串作为第一个参数,但您提供的是完整的查询语句,结果如下:

选择从表中选择id…

引发异常的异常(粗体部分是createQueryBuilder方法中的查询)

请尝试以下方法:

$this->createQueryBuilder('alias')->addSelect('alias.id')
->where(...)
->orderBy(...)
希望能有帮助

编辑

在where中,您可以在旧代码的where之后放置where,但使用查询生成器,您可以在不使用sql的情况下构建查询,并让doctrine为您构建查询


检查此项

谢谢您的有用回答。我知道这个问题写得很糟糕,但我想你明白我的意思了。我想现在很清楚了。你能写下剩下的代码吗?我必须在where里写些什么?@Mostafa不要问剩下的代码,他给你提供了一个解决方案和文档,所以继续读吧,自己尝试一下,不要期望这里有人为你构建代码!祝你好运
$this->createQueryBuilder('alias')->addSelect('alias.id')
->where(...)
->orderBy(...)