雄辩地试图与时间取得日期

问题描述 投票:0回答:1

我正在尝试获取特定日期和时间的所有预订,并计算客人数量以找到可用座位

我在控制器中做什么:

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。

php laravel eloquent
1个回答
0
投票

使用

where
而不是
whereDate
解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.