hasManyThrough - Laravel 5.8
hasManyThrough - Laravel 5.8
我的数据库 table 结构如下:
教室
- id (int) PK
- 名称(可变字符)
班级教师课程
- id (int) PK
- id_classroom(整数)FK
- id_teacher(整数)FK
- id_course(整数)FK
课程
- id (int) PK
- course_name (varchar)
老师
- id (int) PK
- teacher_name (varchar)
到目前为止,我的代码只是调用 ClassRoom table & ClassTeacherCourse,例如:
$class = Class::find($id)
->with(['classcourseteacher'])
->get();
Class
模型中的关系:
public function classcourseteacher() {
return $this->hasMany('App\ClassCourseTeacher', 'id_class', 'id');
}
结果:
[
{
"id": 57,
"id_school": 2,
"class_name": "7 I",
"classcourseteacher": [
{
"id": 406,
"id_class": 57,
"id_course": 9,
"id_teacher": 68,
"created_at": "2020-11-10 16:11:14",
"updated_at": "2020-11-10 16:11:14"
},
{
"id": 434,
"id_class": 57,
"id_course": 11,
"id_teacher": 66,
"created_at": "2020-11-10 16:11:14",
"updated_at": "2020-11-10 16:11:14"
},
]
}
]
我已阅读 Eloquent: Relationships 关于 hasManyThrough
但在文档中与我不同的情况。
如何通过 Eloquent 调用 1 次:与课程和教师详细信息的关系?
在ClassTeacherCourse
class中放入老师和课程关系
function teacher() {
return $this->belongsTo(Teacher::class);
}
function course() {
return $this->belongsTo(Course::class);
}
然后你可以这样调用它以获取详细信息
$class = Class::find($id)
->with(['classcourseteacher.teacher', 'classcourseteacher.course'])
->get();
我的数据库 table 结构如下:
教室
- id (int) PK
- 名称(可变字符)
班级教师课程
- id (int) PK
- id_classroom(整数)FK
- id_teacher(整数)FK
- id_course(整数)FK
课程
- id (int) PK
- course_name (varchar)
老师
- id (int) PK
- teacher_name (varchar)
到目前为止,我的代码只是调用 ClassRoom table & ClassTeacherCourse,例如:
$class = Class::find($id)
->with(['classcourseteacher'])
->get();
Class
模型中的关系:
public function classcourseteacher() {
return $this->hasMany('App\ClassCourseTeacher', 'id_class', 'id');
}
结果:
[
{
"id": 57,
"id_school": 2,
"class_name": "7 I",
"classcourseteacher": [
{
"id": 406,
"id_class": 57,
"id_course": 9,
"id_teacher": 68,
"created_at": "2020-11-10 16:11:14",
"updated_at": "2020-11-10 16:11:14"
},
{
"id": 434,
"id_class": 57,
"id_course": 11,
"id_teacher": 66,
"created_at": "2020-11-10 16:11:14",
"updated_at": "2020-11-10 16:11:14"
},
]
}
]
我已阅读 Eloquent: Relationships 关于 hasManyThrough
但在文档中与我不同的情况。
如何通过 Eloquent 调用 1 次:与课程和教师详细信息的关系?
在ClassTeacherCourse
class中放入老师和课程关系
function teacher() {
return $this->belongsTo(Teacher::class);
}
function course() {
return $this->belongsTo(Course::class);
}
然后你可以这样调用它以获取详细信息
$class = Class::find($id)
->with(['classcourseteacher.teacher', 'classcourseteacher.course'])
->get();