【问题标题】:Laravel Belongs to many relationship response ErrorLaravel 属于多关系响应错误
【发布时间】:2021-06-20 19:34:12
【问题描述】:

我正在做我学校的 Laravel 项目。我有四个模型User,Klass,courseSchool 这些是我的关系

User Model//
 public function teacherCourses(){
    return $this->belongsToMany(Course::class,'course_teachers','teacher_id','course_id');
}
public function klasses(){
    return $this->belongsToMany(Klass::class,'course_teachers','teacher_id','klass_id');
}

klass model//
public function teacherCourses(){
    return $this->belongsToMany(Course::class,'course_teachers','klass_id','course_id');
}

 Course Model//
    public function klasses(){
        return $this->belongsToMany(Klass::class,'course_teachers','course_id','klass_id');
    }

我的 course_teachers 表有 course_idteacher_id(user)、klass_idschool_id

我想返回一位老师,他的课和课内分配的课程..我怎么能得到那个

我试过了

$user=User::with('klasses.teacherCourses')->where('id',$teacher->id)->first();

但是我得到了一些额外数据的响应。就像它还返回具有相同 classId 的其他课程(未分配给用户的课程)。 我该如何改变这个 我的关系对吗??

注意:可以为教师分配许多班级和课程..我认为每种关系都是多对多的

【问题讨论】:

  • 确实设置了任何显示该类已分配的内容

标签: laravel eloquent


【解决方案1】:

你能分别检索klassesteacherCourses吗?

$user = User::with(['klasses', 'teacherCourses'])
    ->find($teacher->id);

$teacher->load('klasses', 'teacherCourses');

这样,额外的klassescourses 将只与一位老师关联,但您失去了klassescourses 之间的关系。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2016-11-24
    • 2021-06-30
    • 2021-11-21
    • 2021-07-06
    • 2018-02-06
    • 2019-02-10
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多