hasManyThrough - Laravel 5.8

hasManyThrough - Laravel 5.8

我的数据库 table 结构如下:

教室

班级教师课程

课程

老师

到目前为止,我的代码只是调用 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 次:与课程和教师详细信息的关系?

ClassTeacherCourseclass中放入老师和课程关系

function teacher() {
    return $this->belongsTo(Teacher::class);
}

function course() {
    return $this->belongsTo(Course::class);
}

然后你可以这样调用它以获取详细信息

$class = Class::find($id)
             ->with(['classcourseteacher.teacher', 'classcourseteacher.course'])
             ->get();