学说查询构建器



我正在使用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() ;

我的问题是当我执行此查询时,我会收到一个错误,即:

[Syntax Error] line 0, col 7: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got 'SELECT'

createqueryBuilder方法期望字符串作为第一个参数,但您正在提供完整的查询语句,结果将是这样的:

选择选择ID ... 从表

提出例外的一个粗体部分是您在CreatequeryBuilder方法中的查询。

而是尝试一下:

$this->createQueryBuilder('alias')->addSelect('alias.id')
->where(...)
->orderBy(...)

希望它有帮助

编辑

在您放置旧代码中的位置的位置,但是使用查询构建器,您可以在没有SQL的情况下构建查询,让学说为您构建查询

检查此DOC

相关内容

  • 没有找到相关文章

最新更新