Laravel 5 laravel雄辩地使用范围来比较两列

Laravel 5 laravel雄辩地使用范围来比较两列,laravel-5,eloquent,Laravel 5,Eloquent,我在laravel 5.0的用户表中有两个日期列。模式是: 使用者 *身份证 *电子邮件 *激活 *去激活 我想查询用户是否已激活,因此我具有以下作用域功能: public function scopeActivated($query){ $now = date('Y-m-d'); return $query->whereBetween('activated_on', ['deactivated_on', $now]); } 它生成的查询是,它将上的列activated\

我在laravel 5.0的用户表中有两个日期列。模式是:

使用者 *身份证 *电子邮件 *激活 *去激活

我想查询用户是否已激活,因此我具有以下作用域功能:

public function scopeActivated($query){
    $now = date('Y-m-d');
    return $query->whereBetween('activated_on', ['deactivated_on', $now]);
}
它生成的查询是,它将上的列
activated\u与
上的字符串
deactivated\u进行比较


有没有办法告诉eloquent比较这两列?

您可以尝试whereRaw函数

$query->whereRaw('activated_on < deactivated_on AND activated_on > ?', array($now));
$query->whereRaw(?”,数组($now));

您知道这在其他数据库类型中的效果如何吗?我知道它在sqlite中工作,但是postgres和sql server呢?实际上,我没有在postgres或sql server上尝试过。几年前,我需要它在mysql上运行,我认为它在mysql上运行,但我不完全确定。