sql查询保留symfony

时间:2017-05-05 09:03:59

标签: sql symfony

以下是我的实体:

Reserves    
id<br>
user<br>
treat_type<br>
from_date<br>
number<br>
price<br>
hour (manyToOne with ReserveTime -> time)<br>

ReserveTime<br>
id<br>
time<br>

my query: <br>
$em = $this->getEntityManager();<br>
    $stmt = $em->getConnection()->prepare("SELECT rt.time<br>
              from reserves r, reserve_time rt<br>
              where r.hour = rt.id and r.from_date = :date_reserve 
and<br> r.number < 2");<br><br>
$stmt->execute(array("date_reserve" => $reserve_date));<br>
return $stmt->fetchAll();<br>

我希望当用户选择一个日期来获取当天的所有可用时间时,但是它只给出了当天保留时间的结果。我希望所有时间不仅仅是那个储备中的小时。 我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

您应该选择给定日期的所有实体。如果$ reserve_date是DateTime对象,则:

$startDate = clone $reserve_date;
$startDate->setTime(0,0,0);

$endDate = clone $startDate;
$endDate->modify('+1 day');

$em = $this->getEntityManager();
$stmt = $em->getConnection()->prepare("SELECT rt.time from reserves r, reserve_time rt where r.hour = rt.id and r.from_date > :from_date and r.from_date < :to_date and r.number < 2");

$stmt->execute(array("from_date" => $startDate, "to_date" => $endDate));
return $stmt->fetchAll();

之后你必须遍历结果并找到空闲的时间窗口。