php – Laravel模型范围activated_at和deactivated_at检查是否有7天的差异

使用模型范围:
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");
}

TO_DAYSMysqL功能的构建.

相关文章

[laravel] laravel的数据库配置 找到程序目录结构下.env文件 配置基本的数据库连接信息 DB_HOST=127.0....
[Laravel] Laravel的基本HTTP路由 使用Laravel的基本路由,实现get请求响应,找到文件app/Http/routes....
如果说laravel框架的核心是什么,那么无疑是服务容器。理解服务容器的概念,对于我们使用laravel太重要...
网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用a...
laraveli添加一个或多个用户表,以admin为例。 部分文件内容可能需要根据实际情况修改 创建一个Admin模...
TL;DR: 本文介绍 Laravel 的 FastExcel 组件,文中会对 PHP generators 速览,并给出如何在节约内存的同...