Laravel использует только таблицу student_test
, чтобы получить модель либо из таблицы тестов, либо из таблицы учеников, без учета каких-либо дополнительных столбцов.
Я думаю, что вам нужна дополнительная модель под названием Result
, которая имеет отношение один к одному с тестом и связь один ко многим со студентом
Добавить модель со столбцами результата
Добавьте это к Student
модели
public function results()
{
return $this->hasMany(Result::class);
}
Добавьте это к Test
модели
public function results()
{
return $this->hasMany(Result::class);
}
Добавьте это к Result
модели
public function test()
{
return $this->belongsTo(Test::class);
}
public function student()
{
return $this->belongsTo(Student::class);
}
И добавьте правильные столбцы.
Таким образом, вы можете сделать:
$student->results->whereHas('test', function ($query) use ($test) {
$query->where('id', '=', $test->id);
})->get();
Или:
$test->results->whereHas('student', function ($query) use ($student) {
$query->where('id', '=', $student->id);
})->get();