【发布时间】:2020-03-16 10:45:38
【问题描述】:
我有 3 张按此顺序排列的桌子:
- 学校
it has -> id - 学期
it has -> school_id - 学期班
it has -> semester_id
现在我正在尝试在School 和SemesterClass 之间建立关系,以获取每个学校的班级列表以及每个班级的学校名称。
基于documentation 我有这样的关系:
学校模式
class School extends Model
{
public function semesters() {
return $this->hasMany(SchoolSemester::class);
}
public function classes() {
return $this->hasManyThrough(SemesterClass::class, SchoolSemester::class);
}
}
学期模式
class SchoolSemester extends Model
{
public function school() {
return $this->belongsTo(School::class);
}
public function classes() {
return $this->hasMany(SemesterClass::class, 'semester_id', 'id');
}
}
学期班模式
class SemesterClass extends Model
{
public function school() {
return $this->hasOneThrough(School::class, SchoolSemester::class, 'school_id', 'id');
}
public function semester() {
return $this->belongsTo(SchoolSemester::class, 'semester_id', 'id');
}
}
控制器
public function show($id)
{
$class = SemesterClass::with(['school', 'teacher', 'teacher.user', 'students'])->findOrFail($id);
dd($class);
//return view('admin.Classes.show', compact('class'));
}
结果
有什么想法吗?
【问题讨论】: