我有一段我需要改变的代码
->rightJoin('calendar', function($join) use ($machineName)
{
$join->on('print_jobs.job_date', '=', 'calendar.datefield')
->where('machines.machine', '=', $machineName);
})
要
->rightJoin('calendar', function($join) use ($machineName)
{
$join->on('DATE(print_jobs.job_date)', '=', 'calendar.datefield')
->where('machines.machine', '=', $machineName);
})
注意我正在将print_jobs.job_date从datetime更改为date。这工作正常,直到我将字段从日期更改为日期时间。
Eloquent不喜欢我在这里添加DATE。我不知道如何将原始连接字段放在这里。
答案 0 :(得分:1)
这不是Eloquent,这是一个流畅的查询构建器,要清楚。接下来,问题是它不知道如何处理DATE()
,因为它只需要一个字符串,而不是一个方法。要解决此问题,请使用数据库外观的raw()
方法。我在下面列出了完整的命名空间,但您可以在文件顶部use
,并简洁地引用DB::raw()
。
$join->on(Illuminate\Support\Facades\DB::raw('DATE(print_jobs.job_date)'), '=', 'calendar.datefield')