在关系查询中访问父属性

时间:2018-10-22 15:30:25

标签: laravel laravel-5 eloquent

一个例子:

$passing_students = App\Exam::whereHas('students', function ($query) {
    $query->where('mark', '>=', $exam->pass_mark);
})->get();

我有兴趣与通过考试的学生一起获取所有考试,但是在关系查询功能中,我不确定如何访问父模型的属性,以便完成比较。应该用$exam->pass_mark代替什么?

请注意,我正在寻找一个在单个查询构建器中完成的解决方案,因为我知道这可以在单独的foreach循环中轻松完成。

1 个答案:

答案 0 :(得分:0)

可能代替:

$query->where('mark', '>=', $exam->pass_mark);

您应该在这里使用:

$query->whereColumn('mark', '>=', 'exams.pass_mark');

exams.pass_mark上方是考试模型表的名称(我假设您使用exams和该表中的列名称。