Course::where('dept_id', '=', 1)->with('sections:id,course_id,semester_code')->get()->sort('cmpCourseCode'), 'semesters' => Semester::orderBy('code', 'asc')->get(), ]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // dd($request->validate(['code' => ['required','unique:courses','size:8','regex:/[A-Za-z]{4}[0-9]{4}/', 'string']])); $course = Course::create( $request->validate([ 'code' => ['required','unique:courses','size:8','regex:/[A-Za-z]{4}[0-9]{4}/', 'string'], 'title' => ['required','max:255', 'string'], 'dept_id' => ['required','exists:departments,id', 'integer'], 'syllabus' => ['nullable','file', 'mimes:pdf'] ])); if ($request->file('syllabus')) { $path = $request->file('syllabus')->store('course_syllabus', 'public'); $course->update(['syllabus' => asset($path)]); } return redirect('/course/' . $course->id); } /** * Display the specified resource. * * @param \App\Course $course * @return \Illuminate\Http\Response */ public function show(Course $course) { // dd($course->toJson()); // dump(1); // Auth::logout(); // $semesters = $course->semesters->unique()->loadMissing('sections'); // $course->loadMissing('semesters.sections'); // dd($semesters); $course->loadMissing(['semesters.sections.professors']); // dd($course->semesters->unique()); // $semesters = $course->sections->groupBy('semester_code')->map( function ($sections) { // return collect(['alpha' => $sections[0]->semester->alpha, 'sections' => $sections->sortBy('code')]); // })->sort(); // dd($semesters); // dd($course->loadMissing(['sections.semester'])); // dd($course->sections->groupBy('semester_code')); return view('courses.show', [ 'course' => $course, // 'semesters' => $semesters ]); } /** * Show the form for editing the specified resource. * * @param \App\Course $course * @return \Illuminate\Http\Response */ public function edit(Course $course) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Course $course * @return \Illuminate\Http\Response */ public function update(Request $request, Course $course) { $course->update( $request->validate([ 'code' => ['unique:courses','size:8','regex:/[A-Za-z]{4}[0-9]{4}/', 'string'], 'title' => ['max:255', 'string'], 'dept_id' => ['exists:departments,id', 'integer'], 'syllabus' => ['nullable', 'file', 'mimetypes:application/pdf'], ])); if ($request->file('syllabus')) { $path = $request->file('syllabus')->store('course_syllabus'); $course->update(['syllabus' => asset($path)]); } dump(asset($path)); // dd($course->syllabus); return redirect($course->syllabus); return redirect('/course'); } /** * Remove the specified resource from storage. * * @param \App\Course $course * @return \Illuminate\Http\Response */ public function destroy(Course $course) { // } }