Mysql 雄辩的laravel与where子句有原始连接

Mysql 雄辩的laravel与where子句有原始连接,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,我有一段代码需要修改 ->rightJoin('calendar', function($join) use ($machineName) { $join->on('print_jobs.job_date', '=', 'calendar.datefield') ->where('machines.machine', '=', $machineName); }) 到 请注意,我正在将print_jobs.job_date从datetime更改为dat

我有一段代码需要修改

->rightJoin('calendar', function($join) use ($machineName)
{
    $join->on('print_jobs.job_date', '=', 'calendar.datefield')
         ->where('machines.machine', '=', $machineName);
})

请注意,我正在将print_jobs.job_date从datetime更改为date。在我将字段从date更改为datetime之前,这一切都很好


雄辩者不喜欢我在这里添加日期。我不知道如何把原始连接字段放在这里。

这不是很有说服力,这是一个流畅的查询生成器。其次,问题是它不知道如何处理
DATE()
,因为它只需要字符串,而不需要方法。要解决此问题,请使用DB facade的
raw()
方法。我在下面包含了完整的名称空间,但是为了简洁起见,您可以在文件的顶部使用它,并引用
DB::raw()

$join->on(Illuminate\Support\Facades\DB::raw('DATE(print_jobs.job_date)'), '=', 'calendar.datefield')

尝试使用DB::raw('DATE(print_jobs.job_DATE)'而不是'DATE(print_jobs.job_DATE)'并且不要忘记:使用DB;谢谢我创建了一个新的DB::raw,但一直试图在随叫随到的外部使用它,而不是在内部。这就解决了问题。
$join->on(Illuminate\Support\Facades\DB::raw('DATE(print_jobs.job_date)'), '=', 'calendar.datefield')