Laravel 如何获得第三个关系中带有条件的查询?

Laravel 如何获得第三个关系中带有条件的查询?,laravel,eloquent,laravel-7,Laravel,Eloquent,Laravel 7,我使用的是Laravel7,得到这样的数组 我和能言善辩的人一起工作。这是我为该数组编写的代码 **return EvaluateTeacherQuestion::with('evaluate_teacher_possibles_answers')->get();** 这是我的功能,评估,老师,可能的答案,建立关系 public function evaluate_teacher_possibles_answers() { return $this->hasMany(Eva

我使用的是Laravel7,得到这样的数组

我和能言善辩的人一起工作。这是我为该数组编写的代码

**return EvaluateTeacherQuestion::with('evaluate_teacher_possibles_answers')->get();**
这是我的功能,评估,老师,可能的答案,建立关系

public function evaluate_teacher_possibles_answers()
{
    return $this->hasMany(EvaluateTeacherPossibilites::class)->withCount('evaluate_teacher_answers')->with('evaluate_teacher_answers');
}
要得到第三个条件,使用这个

public function evaluate_teacher_answers()
{
    return $this->hasMany(EvaluateTeacherAnswer::class, 'evaluate_teacher_possible_id');
}
问题在评估教师答案表中,我只需要得到一个条件(教师id=$teacher)正确时的结果。

尝试以下方法: 将带有('evaluate\u teacher\u answers')的
evaluate\u teacher\u possibles\u answers
关系中删除:

public function evaluate_teacher_possibles_answers()
{
    return $this->hasMany(EvaluateTeacherPossibilities::class)->withCount('evaluate_teacher_answers')->;
}
然后根据您的条件加载该关系:

 $value = EvaluateTeacherQuestion::with(['evaluate_teacher_possibles_answers'=>function($query)use($teacher_id)
        {
            $query->with(['evaluate_teacher_answers'=>function($query)use($teacher_id){
                $query = $query->where('evaluate_teacher_answers.teacher_id',$teacher_id);
            }]);
        }])->get();

添加
whereHas
条件时,将添加一个子查询。 例如:

通过这种方式,将在模型中包含关系,并从相关模型执行闭包条件

EvaluateTeacherQuestion::with('evaluate_teacher_possibles_answers')->whereHas('evaluate_teacher_possibles_answers',function($query){
         $query->where('column','operation','value');
    })->get();