school_id) { return redirect()->route('dashboard'); } $students = Auth::user()->students()->withCount('entries')->get(); $auditions = Audition::all(); return view('students.index', ['students' => $students, 'auditions' => $auditions]); } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { if ($request->user()->cannot('create', Student::class)) { abort(403); } $request->validate([ 'first_name' => ['required'], 'last_name' => [ 'required', new UniqueFullNameAtSchool(request('first_name'), request('last_name'), Auth::user()->school_id), ], 'grade' => ['required', 'integer'], ]); $student = Student::create([ 'first_name' => request('first_name'), 'last_name' => request('last_name'), 'grade' => request('grade'), 'school_id' => Auth::user()->school_id, ]); $request->session()->put('auditionMessages', ['success', 'I did it again ma']); return redirect('/students'); } /** * Display the specified resource. */ public function show(Request $request, Student $student) { // } /** * Show the form for editing the specified resource. */ public function edit(Request $request, Student $student) { if ($request->user()->cannot('update', $student)) { abort(403); } return view('students.edit', ['student' => $student]); } /** * Update the specified resource in storage. */ public function update(Request $request, Student $student) { if ($request->user()->cannot('update', $student)) { abort(403); } request()->validate([ 'first_name' => ['required'], 'last_name' => ['required'], 'grade' => ['required', 'integer'], ]); $student->update([ 'first_name' => request('first_name'), 'last_name' => request('last_name'), 'grade' => request('grade'), ]); return redirect('/students')->with('success', 'Student updated successfully.'); } /** * Remove the specified resource from storage. */ public function destroy(Request $request, Student $student) { if ($request->user()->cannot('delete', $student)) { abort(403); } $student->delete(); return redirect(route('students.index')); } }