首页 > 解决方案 > 如何通过查询查找可用日期

问题描述

你能帮我建立一个查询以在 Laravel Eloquent 中查找免费日期吗?

所以我有两个模型,Node 和 Booking。模型通过 HasMany 关系关联

public function dates()
{
    return $this->hasMany(Booking::class, 'object_id', 'nid');
}

预订模型具有以下结构:

| bid | object_id  | checkin    | checkout   |
|  1  | 32         | 2017-04-25 | 2017-04-28 |
|  2  | 32         | 2017-05-01 | 2017-05-09 |
|  3  | 44         | 2017-04-21 | 2017-04-24 |
|  4  | 51         | 2017-05-01 | 2017-05-08 |

我的目的是找到给定日期之间的可用节点。

因此,如果我想在(例如 created_at)之间搜索一个日期,这很简单:

whereBetween(‘created_at’, [$date1, $date2])

但是如何在签入和结账这两个日期之间创建一个搜索查询呢?

标签: laravel

解决方案


你的意思是这样的?

$query->where('checkin','<=', $date)
      ->where('checkout','>=', $date);

您还可以将其添加到范围:Laravel 查询范围


推荐阅读