$studentIds = ExamRoutineDetail::where('routine_id', $routineId)
->distinct()
->pluck('student_id')
->all();
$data = Student::whereIn('id', $studentIds)
->where('school_id', $schoolId)
->where('grade_id', $gradeId)
->with([
'routine_detail' => function ($query) use ($routineId) {
$query->where('routine_id', $routineId);
},
'routine_detail.routine',
'routine_detail.routine.routine_info' => function ($query) use ($routineId) {
$query->where('routine_id', $routineId);
},
'routine_detail.routine.routine_info.student_marks' => function ($query) use ($studentIds) {
$query->where('student_id', $studentIds);
},
])
->get();
Я хочу использовать идентификатор студента в конечном состоянии, где условие в последнем слое вложенной загрузки, т.е. рутинная_деталь.routine.routine_info.student_marks.
, что-то вроде этого
'routine_detail.routine.routine_info.student_marks' => function ($query) use ($studentIds) {
$query->where('student_id', $id);
},
где id будет равен id студента в контексте, из основной модели Student :: .....