Вам необходимо изучить полиморфизм Ларавела.В вашем случае вам необходимо использовать объекты belongsTo
и hasMany
таким образом.
В вашей модели Student
добавьте следующую функцию
public function students_marks(){
return $this->hasMany(StudentMark::class);
}
В вашStudentMark
модель, добавьте следующую функцию
public function student(){
return $this->belongsTo(Student::class, 'student_id', 'id');
}
При запросе используйте предложение whereHas
, чтобы выполнить запрос, как показано ниже
$student_marks = StudentMark::with('student')
->whereHas('student', function($student){
$student->where('gender', 'female');
})->get()->count();
Это должно дать вам счет.Для ваших собственных знаний читайте больше на Laravel Eloquent EagerLoading
.