есть 5 таблиц в базе данных (в скобках поля для каждой соответственно):
groups (id | title);
students (id | firstName | lastName | group_id);
subjects (id | title);
assessments (id | value | student_id | subjects_id);
group_subject (id | group_id | subject_id);
Связи:
class Group extends Model
{
public function students()
{
return $this->belongsToMany(Student::class);
}
public function subjects()
{
return $this->belongsToMany(Subject::class);
}
}
class Student extends Model
{
protected $fillable = ['firstName', 'lastName'];
public function group()
{
return $this->hasOne(Group::class);
}
public function assessments()
{
return $this->hasMany(Assessment::class);
}
public function subjects()
{
return $this->belongsToMany(Subject::class, 'assessments', 'student_id', 'subject_id');
}
}
class Subject extends Model
{
public function groups()
{
return $this->belongsToMany(Group::class);
}
public function assessments()
{
return $this->hasMany(Assessment::class);
}
public function students()
{
return $this->belongsToMany(Student::class);
}
}
class Assessment extends Model
{
public function subject()
{
return $this->belongsTo(Subject::class);
}
public function student()
{
return $this->belongsTo(Student::class);
}
}
Как мне правильно выбрать для каждого студента те предметы, которые так же соответствуют его группе в которой он учится, чтобы не возникло такой проблемы, что у каждого студента разные предметы, даже если они в одной группе?