students; return view('students.index',['students' => $students]); } /** * 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 ]); 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'); } /** * 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('/students'); } }