在计算的天数差异内获取模型

时间:2017-04-24 16:01:00

标签: php laravel eloquent

我有一个名为Condition的模型,其中有一个名为expires_at的列,用于存储日期时间。

基本上我需要获得即将到期的所有条件。当只剩下5天到达存储日期时,条件即将到期。

我如何用Eloquent实现这一目标?我需要将逻辑放在where所在的位置。

Condition::where(xxx)->get()

PS。我正在使用碳,以防万一。

2 个答案:

答案 0 :(得分:1)

此代码将返回expires_at从现在开始到+5天之后的对象。

Condition::whereBetween('expires_at', [Carbon::now(), Carbon::now()->addDays(5)])->get()

答案 1 :(得分:0)

你应该使用范围;

你应该在Condition类中添加方法。

public function scoperExpired($query) { $date = date('Y-m-d', strtotime('+5 day')); return $query->where('expires_at', '<=', $date);}

现在你可以使用expired作为范围: -

Condition::expired()->get() 将返回所有过期的条件。