使用 Laravel Eloquent 是否可以在两组数据之间进行搜索并仅在整个数据集匹配某些值时才拉取?

问题描述

我有一个酒店数据库我有一个可用性数据库,其中包含每家酒店 2 年的日期。

所以hotel_id,date,status

如果有人想搜索从 X 到 XI 可用的酒店,则正在拉取所有酒店和这些日期,翻阅该日期集并将每个状态匹配到 6 个状态之一,并且如果返回的总晚数等于晚上提交它是可用的。这在有 1000 家酒店的地方很好,后来有 4000 家酒店就停止了。

如果有一种方法可以进行搜索,我可以比较介于两者之间并包括 2 个给定日期的所有日期。我最初有这个,但意识到这只是给我任何具有此范围内 ID 的酒店,而不是具有所有可用范围的酒店。

我目前的(不太有效)一个

Availabilities::select('hotel_id')
->whereIn('status',['A','RA','RD','NA','ND','LA','LD'])
->where('date','>=',$date_from)
->where('date','<=',$date_to)
->pluck('hotel_id')
->toArray());

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)