一个例子:
$passing_students = App\Exam::whereHas('students', function ($query) {
$query->where('mark', '>=', $exam->pass_mark);
})->get();
我有兴趣与通过考试的学生一起获取所有考试,但是在关系查询功能中,我不确定如何访问父模型的属性,以便完成比较。应该用$exam->pass_mark
代替什么?
请注意,我正在寻找一个在单个查询构建器中完成的解决方案,因为我知道这可以在单独的foreach循环中轻松完成。
答案 0 :(得分:0)
可能代替:
$query->where('mark', '>=', $exam->pass_mark);
您应该在这里使用:
$query->whereColumn('mark', '>=', 'exams.pass_mark');
exams.pass_mark
上方是考试模型表的名称(我假设您使用exams
和该表中的列名称。