【发布时间】:2021-06-08 11:11:59
【问题描述】:
我正在做一个回购,以查找在一段时间内完成的所有预订。 我有一个入住日期和他们入住的天数。
/*
* @return array
*/
public function findAllByHotelIdAndDate(int $id, \DateTime $date)
{
$qb = $this->createQueryBuilder('re')
->leftJoin(Room::class, 'ro')
->leftJoin(Hotel::class, 'h')
->where('h.id =:idHotel')
->andWhere('re.checkIn >= :date')
->andWhere("DATE_ADD(re.checkIn, re.nights, 'day') <= :date")
->setParameters(['date' => $date, 'idHotel' => $id])
;
$query = $qb->getQuery();
return $query->execute();
}
我的问题在于DATE_ADD 的使用。
我的语法正确吗?
【问题讨论】:
-
我无法编辑我的问题,但我收到一条错误消息:SQLSTATE[42000]: 语法错误或访问冲突:1064 Erreur de syntaxe près de 'WHERE h4_.id = 1 AND r0_.check_in >= '2021-06-03 00:00:00' AND '2021-06-03 00:00' à la ligne 1 当我执行此查询时
-
嗨,谢谢@yivi。这是我一开始遇到的两个问题,但我仍然有这个问题。我试图将我的变量放在 DATE_ADD 之前,但没有任何改进。我的查询没有看到问题。我试过单引号,双引号
-
编辑链接位于问题底部的标签下方。没有什么特别的原因让您无法对其进行编辑。
标签: php doctrine-orm doctrine dql