Laravel 如何获得第三个关系中带有条件的查询?
我使用的是Laravel7,得到这样的数组 我和能言善辩的人一起工作。这是我为该数组编写的代码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
**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();