我有一个雄辩的模型,其中有两列'startdate'和'enddate'。我想显示当前一周正在进行的所有模型,即“startdate”和“enddate”之间匹配当前任何日期的任何日期。 我第一次尝试只用这样的STARTDATE获得:Laravel:在本周的两个日期之间获取模型
$startOfWeek = Carbon::now()->startOfWeek()->startOfDay();
$endOfWeek = Carbon::now()->endOfWeek()->endOfDay();
$modelThisWeek = Model::whereBetween('startdate', [$startOfWeek, $endOfWeek])->get();
但当然,任何开始一个多星期前,但目前仍在进行中(“结束日期”尚未完成),将不显示向上。
我怎样才能有效地获得本周有效的所有模型?
编辑:所以我有点想要做的(听起来很愚蠢)是获取'startdate'和'enddate'之间的所有日期,比如在数组中,例如获取第二个数组中的所有日期当前一周,并使用像array_intersect并获得这些模型。我希望我这次更清楚地解释一下。
编辑2:一些样本数据和预期结果。
数据在DB:
--------------------------------------------------
| ID | some_other_col | startdate | enddate |
--------------------------------------------------
| 1 | ... | 12. Jan 17 | 20. Feb 17 |
--------------------------------------------------
| 2 | ... | 12. Jan 17 | 18. Jan 17 |
--------------------------------------------------
| 3 | ... | 30. Jan 17 | 04. Feb 17 |
--------------------------------------------------
| 4 | ... | 04. Feb 17 | 07. Feb 17 |
--------------------------------------------------
| 5 | ... | 08. Feb 17 | 10. Feb 17 |
--------------------------------------------------
所以,如果我想所有当前一周内的车型:
29. 1月17日 - 05年02月17
我期待与ID为1的模型,3,4;
就像在两个日期(startOfWeek和endOfWeek)内正在进行的所有模型一样。
你能像'Model :: whereBetween() - > whereBetween() - > get()'那样调用'whereBetween' 2次吗? – JustOnUnderMillions
你可以做到这一点,但我只能得到本周startdate和本周enddate的模型。如果开始日期与两个月前相似,并且结束日期与三周内相似,该怎么办? –
这可以帮助一点http://stackoverflow.com/questions/26082043/wherebetween-dates-in-laravel-4-eloquent#26082523我不使用雄辩 - 似乎或WhereBetween可以帮助!? – JustOnUnderMillions