laravel的雄辩框架有点麻烦。
我需要像这样复制一个查询:
SELECT *
FROM RepairJob
WHERE NOT EXISTS (SELECT repair_job_id
FROM DismissedRequest
WHERE RepairJob.id = DismissedRequest.repair_job_id);
现在我有
$repairJobs = RepairJob::with('repairJobPhoto', 'city', 'vehicle')->where('active', '=', 'Y')->whereNotExists('id', [DismissedRequest::all('repair_job_id')])->get();
有人有想法吗?我需要获取所有在被解雇的请求表中没有记录的repairjobs
使用上面的查询时出现此错误
Argument 1 passed to Illuminate\Database\Query\Builder::whereNotExists() must be an instance of Closure, string given
答案 0 :(得分:5)
尝试使用doesntHave()方法。假设在RepairJob模型中将'dismissedRequests'作为关系名称。
$jobs = RepairJob::with('repairJobPhoto', 'city', 'vehicle')
->where('active', 'Y')->doesntHave('dismissedRequests')->get();
答案 1 :(得分:3)
试试这个:
(Source code, png, hires.png, pdf)