Laravel 5 按第二个关系筛选第一个关系

Laravel 5 按第二个关系筛选第一个关系,laravel-5,eloquent,laravel-eloquent,Laravel 5,Eloquent,Laravel Eloquent,我正在努力通过教师关系过滤属于学校的教师 学校有用户。用户可能与教师有多态关系 [到目前为止,这是可行的] …然后教师有一个或多个教学阶段和教学主题,我想通过一个或多个(传递ID数组)进行过滤 目前我确实得到了结果,但有多个教学阶段和教学科目的老师被排除在外。我哪里做错了 谢谢K.好的,所以上面的内容确实如我所愿。抱歉,在数据的植入方面有一个非常小的问题,这就是为什么我得到了意想不到的结果:/my bad-感谢您的关注 $teachers = $school->teachers()

我正在努力通过教师关系过滤属于学校的教师

学校有用户。用户可能与教师有多态关系 [到目前为止,这是可行的]

…然后教师有一个或多个教学阶段和教学主题,我想通过一个或多个(传递ID数组)进行过滤

目前我确实得到了结果,但有多个教学阶段和教学科目的老师被排除在外。我哪里做错了


谢谢K.

好的,所以上面的内容确实如我所愿。抱歉,在数据的植入方面有一个非常小的问题,这就是为什么我得到了意想不到的结果:/my bad-感谢您的关注

$teachers = $school->teachers()
                ->whereHas('teachingstages', function ($query) use ($filters) {
                    $query->whereIn('teachingstage_id', $filters['teachingstages']);
                })
                ->whereHas('teachingsubjects', function ($query) use ($filters) {
                    $query->whereIn('teachingsubject_id', $filters['teachingsubjects']);
                })
            ->orderBy('rating', 'desc')->get();