/**
* Display the specified resource.
*
* @param $id integer
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$lessons_count = Lesson::selectRaw('COUNT(id)')->whereIn('section_id', function ($query) {
$query->select('id')->from('sections')->whereRaw('`sections`.`course_id` = `courses`.`id`');
});
$course = Course
::select('*')
->selectSub($lessons_count, 'lessons_count')
->when(auth()->check(), function ($query) {
$last_completed_lesson_id = DB::table('lesson_user')->select('lesson_id')->whereIn('lesson_id', function ($query) {
$query->select('id')->from('lessons')->whereIn('section_id', function ($query) {
$query->select('id')->from('sections')->whereRaw('`sections`.`course_id` = `courses`.`id`');
});
})->orderBy('lesson_id', 'desk')->limit(1);
$completed_lessons_count =
DB::table('lesson_user')->selectRaw('COUNT(lesson_id)')->whereIn('lesson_id', function ($query) {
$query->select('id')->from('lessons')->whereIn('section_id', function ($query) {
$query->select('id')->from('sections')->whereRaw('`sections`.`course_id` = `courses`.`id`');
});
});
$query->selectSub($last_completed_lesson_id, 'last_completed_lesson_id');
$query->selectSub($completed_lessons_count, 'completed_lessons_count');
})->findOrFail($id);
return view('courses.show', ['course' => $course]);
}