我正在尝试获取特定日期和时间的所有预订,并计算客人数量以找到可用座位
我在控制器中做什么:
public function getSeats() {
$data = request()->validate([
'date' => 'required',
'hours' => 'required',
'place_id' => 'required'
]);
$hours = [];
foreach($data['hours'] as $h) {
$date = $data['date'].' '.$h;
//Carbon date: 2021-08-31 08:00:00 | Database Date: 2021-08-31 08:00:00
$count = Reservation::where('place_id', $data['place_id'])->whereDate('date', Carbon::create($date)->toDateTimeString())->sum('guests');
$object = (object) [
'hour' => $h,
'guests' => $count
];
array_push($hours, $object);
}
}
它返回 null,我做错了什么?
**编辑 我还在时间选择器中使用 24 小时,因此当我在早上 12:00 创建预订时,eloquent 会将其视为晚上 00:00。
使用
where
而不是 whereDate
解决了问题