【问题标题】:Laravel 5.1 return eloquent between time_start and time_endLaravel 5.1 在 time_start 和 time_end 之间返回 eloquent
【发布时间】:2017-07-10 08:35:26
【问题描述】:

这是我的示例表:

reservation_date |时间开始 |时间结束 2017 年 7 月 10 日 | 12:00:00 | 14:00:00

我要做的是根据用户的请求返回 time_start 和 time_end 之间的所有预订。并从 time_start 和 time_end 开始/添加 2 小时以防止冲突。我试过了

$times_data = $this->getTimesData($request->reservation_time_start, $request->reservation_time_end);

$reservations =  $reservations->whereBetween('reservation_time_start', $times_data)

protected function getTimesData($time_start, $time_end)
    {

        $time_from = $this->getTimeFrom($time_start);

        $time_to = $this->getTimeTo($time_end);

        return [$time_from, $time_to];
    }

protected function getTimeFrom($time)
    {
        $time = Carbon::parse($time);

        return $time->subHours(2)->toTimeString();
    }


    protected function getTimeTo($time)
    {
        $time = Carbon::parse($time);

        return $time->addHours(2)->toTimeString();
    }

但结果不是我所期望的。我也试过了

->whereRaw("(reservation_time_start BETWEEN ? AND ?) AND (reservation_time_end BETWEEN ? AND ?) ",$times_data)

但它返回空值。请帮忙。

【问题讨论】:

  • 您尝试过的原始部分需要 4 个参数,但您提供了两个参数。试试array_merge($times_data,$times_data)

标签: php mysql eloquent laravel-5.1


【解决方案1】:

查看 laravel 文档https://laravel.com/docs/5.4/queries 我想你想做这样的事情:

->whereBetween('reservation_time_start', [$time_from, $time_to])
->whereBetween('reservation_time_end', [$time_from, $time_to])
->get();

【讨论】:

    【解决方案2】:

    我找到了解决问题的方法:

    我使用了 whereRaw,我发现当我使用双引号(在 whereRaw 参数内)时,它返回 null。然后我把它改成单引号然后我的问题就解决了。这是我的查询,

    $reservations->whereRaw('((reservation_time_start >= ? AND reservation_time_start <= ?) OR (reservation_time_end <= ? AND reservation_time_end >= ?))',[$time_start, $time_end, $time_end, $time_start])
    ->whereIn('reservation_status_id', [1, 2, 3])
    ->ofReservationDate($request->reservation_date);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-27
      • 2016-06-11
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2014-11-29
      • 2014-07-30
      相关资源
      最近更新 更多