这是我的控制器,我需要在is_enabled = 0的表章节上添加where条件
$module = $course->modules()
->with('chapters')
->join('course_student', 'course_student.module_id', '=', 'modules.id')
->select('*', DB::raw('course_student.module_id as id'))
->where('is_enabled', 1)
->where('course_student.student_id', $user->id)
->where('course_student.test_completed', 0)
->where('course_student.ends_on', '>', Carbon::now())
->orderBy('order')
->first();
答案 0 :(得分:0)
如果要有条件地选择关系,则应使用whereHas
方法。
这些方法允许您将自定义约束添加到 关系约束,例如检查评论内容
为您提供类似的代码:
$module = $course->modules()
->whereHas('chapters', function ($query) {
$query->where('is_enabled', 0);
})
->join('course_student', 'course_student.module_id', '=', 'modules.id')
->select('*', DB::raw('course_student.module_id as id'))
->where('is_enabled', 1)
->where('course_student.student_id', $user->id)
->where('course_student.test_completed', 0)
->where('course_student.ends_on', '>', Carbon::now())
->orderBy('order')
->first();