【发布时间】:2019-06-02 05:37:39
【问题描述】:
我有模特
Logbook 和一个模型
LogbookEntries
Logbook hasMany LogbookEntries 和 LogbookEntries belongsto Logbook(虽然不在问题范围内)。在我的LogbookEntries 中,我有两个字段(以及其他字段):start date 和 end_date。我想显示以下日期条目的所有 LogbookEntries 作为示例。
条目 1
start_date: 01 Mar 19
end_date: 05 Mar 19
条目 2
start_date: 06 Mar 19
end_date: 12 Mar 19
条目 3
start_date: 19 Jun 19
end_date: 22 Jun 19
如果我说显示所有有后续日期的,那么只有条目 3 会显示。我的问题是:
Logbook::whereHas('LogbookEntries', function($q) {
$q->where('start_date', <???.end_date + 1 day>)
})
【问题讨论】:
-
错误:$q->where('start_date ', ??.end_date+ 1 day>)
-
你能澄清你的期望吗?我不明白你想要什么作为输出?您是否想要 start_date 比 end_date 早 2 天的所有条目?
-
我想要的只是具有立即跟进日期的条目。因此,如果有一个条目的结束日期为 19 年 3 月 5 日,并且一个条目的开始日期为 19 年 3 月 6 日 - 那么它将给我 19 年 3 月 5 日,因为该条目的后续日期为 3 月 6 日
-
为了清楚起见,您只希望查询返回 end_date 是紧随 start_date 之后的日期的条目?所以 start_date 01 Jan 2019 end_date 02 Jan 2019 将被返回,但 start_date 01 Jan 2019 end_date 03 Jan 2019 不会被返回?
-
是的,这就是我所需要的
标签: mysql laravel subquery laravel-query-builder