【发布时间】:2021-11-13 01:59:12
【问题描述】:
我遇到了这个错误,我想了解一下:
[语法错误] 第 0 行,第 7 列:错误:预期标识变量 | 标量表达式 |聚合表达式 |功能声明 | 部分对象表达式 | "(" 子选择 ")" | CaseExpression,得到 '选择'
因为我已经这样做了:
public function findByBookings($start, $leave): array
{
$qb = $this->createQueryBuilder('SELECT * FROM room as r JOIN booking as b ON r.id = b.r WHERE b.r NOT IN
(SELECT b.room FROM b WHERE b.startDate <= :startDate AND b.leaveDate >= :leaveDate, OR WHERE b.startDate >= :startDate AND b.leaveDate <= :leaveDate, OR WHERE b.startDate >= :startDate AND b.leaveDate >= :leaveDate, OR WHERE b.startDate <= :startDate AND b.leaveDate <= :leaveDate)')
->setParameter(':start', $start)
->setParameter(':leave', $leave);
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
如果我将 $this->createQueryBuilder 更改为 $this->createQuery() 我还有另一个错误:
未定义的方法“createQuery”。方法名称必须以 findBy、findOneBy 或 countBy!
为什么 Symfony 会在我的函数名称以“findBy”开头时返回此错误?
谢谢
【问题讨论】:
-
OR WHERE...?? -
你觉得不好?