У меня есть 5 таблиц, и я хочу, чтобы это было в форме красноречивых. Как мне объединить все таблицы, используя with()
, или есть другие способы сделать это.
- студент
- расписание
- schedule_student
student_id,schedule_id
- активность
schedule_id
- баллы
student_id
, activity_id
, score
Мои модели
//Activity
public function schedule()
{
return $this->belongsTo(Schedule::class);
}
public function students()
{
return $this->belongsToMany(Student::class,'scores');
}
//Student
public function schedules()
{
return $this->belongsToMany(Schedule::class,'schedule_student');
}
public function activities()
{
return $this->belongsToMany(Activity::class,'scores');
}
//Schedule
public function activities()
{
return $this->hasmany(Activity::class);
}
public function students()
{
return $this->belongsToMany(Student::class,'schedule_student');
}
//Student
public function student()
{
return $this->belongsTo(Student::class);
}
public function activity()
{
return $this->belongsTo(Activity::class);
}
Как мне объединить все 4 таблицы (кроме schedule_student
), чтобы json выглядел снизу:
schedule[]
=>activities[]
=>students[]
=>scores[]