我有一个名为Condition
的模型,其中有一个名为expires_at
的列,用于存储日期时间。
基本上我需要获得即将到期的所有条件。当只剩下5天到达存储日期时,条件即将到期。
我如何用Eloquent实现这一目标?我需要将逻辑放在where
所在的位置。
Condition::where(xxx)->get()
PS。我正在使用碳,以防万一。
答案 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()
将返回所有过期的条件。