使用模型范围:
public function scopeApproved($query) { return $query->where('activated_at','>=','deactivated_at' -7 days); }
我知道这是无效的语法,但认为我可能很清楚我想要实现的目标.
‘activated_at’和’deactivated_at’是同一个表中的两个字段我希望得到它们相隔7天以上的所有实例
我不确定有没有一种正确的方法可以通过Eloquent实现这一点,尽管你可以使用MysqL函数
DATEDIFF.尝试类似:
// in your model public function scopeApproved($query) { $query->whereRaw("DATEDIFF('activated_at','deactivated_at') >= 7"); }
这取决于您使用的数据库驱动程序(即MysqL,sqlite,sql服务器……)
编辑:
找到了一些与MysqL一起工作的东西(到目前为止):
// in your model public function scopeApproved($query) { $query->whereRaw("TO_DAYS(activated_at) - TO_DAYS(deactivated_at) >= 7"); }