我有一些模型Featured_Course_Request
,Course_Request
,Response
和Teacher
。 Featured_Course_Request
hasOne
Course_Request
Course_Request
和hasMany
Response
Teacher
$featured_course_request = Featured_Course_Resquest::whereRaw('remaining_coins >= coins_per_click')->where('status', '=', 'open')
->whereHas('courseRequest', function($q) use ($teacher){
$q->whereHas('responses', function($qe) use ($teacher){
$qe->where('teacherID', '!=', $teacher->id);
});
});
。
我想获得唯一一个已登录教师未响应的Featured_Course_Requests(登录教师没有响应。)我该怎么办?
我正在尝试使用以下代码实现它,但它没有提供正确的输出。
{{1}}
答案 0 :(得分:1)
您可以使用点语法定位嵌套关系:'courseRequest.responses'
您需要更多whereDoesntHave
而不是whereHas
:
$featured_course_request = Featured_Course_Resquest::whereRaw('remaining_coins >= coins_per_click')
->where('status', '=', 'open')
->whereDoesntHave('courseRequest.responses', function($q) use ($teacher){
$qe->where('teacherID', '=', $teacher->id);
})
->get();