get(); return view('admin.kelas.index', compact('data'))->with('success', session('success')); } public function create() { $tahunAjarans = TahunAjaran::all(); return view('admin.kelas.create', compact('tahunAjarans')); } public function store(Request $request) { $request->validate([ 'nama_kelas' => 'required|string|max:255', 'tingkat' => 'required|string|max:50', 'jurusan' => 'nullable|string|max:100', 'tahun_ajaran_id' => 'nullable|exists:tahun_ajaran,id', ]); try { Kelas::create([ 'nama_kelas' => $request->nama_kelas, 'tingkat' => $request->tingkat, 'jurusan' => $request->jurusan, 'tahun_ajaran_id' => $request->tahun_ajaran_id, ]); return redirect()->route('admin.kelas.index')->with('success', 'Data kelas berhasil ditambahkan.'); } catch (\Exception $e) { Log::error('Gagal menambahkan kelas: ' . $e->getMessage()); return back()->withInput()->withErrors('Gagal menambahkan kelas.'); } } public function edit($id) { $kelas = Kelas::findOrFail($id); $tahunAjarans = TahunAjaran::all(); return view('admin.kelas.edit', compact('kelas', 'tahunAjarans')); } public function update(Request $request, $id) { $request->validate([ 'nama_kelas' => 'required|string|max:255', 'tingkat' => 'required|string|max:50', 'jurusan' => 'nullable|string|max:100', 'tahun_ajaran_id' => 'nullable|exists:tahun_ajaran,id', ]); try { $kelas = Kelas::findOrFail($id); $kelas->update([ 'nama_kelas' => $request->nama_kelas, 'tingkat' => $request->tingkat, 'jurusan' => $request->jurusan, 'tahun_ajaran_id' => $request->tahun_ajaran_id, ]); return redirect()->route('admin.kelas.index')->with('success', 'Data kelas berhasil diperbarui'); } catch (\Exception $e) { Log::error('Gagal memperbarui kelas: ' . $e->getMessage()); return back()->withInput()->withErrors('Gagal memperbarui kelas.'); } } public function destroy($id) { try { $kelas = Kelas::findOrFail($id); $kelas->delete(); return redirect()->back()->with('success', 'Data kelas berhasil dihapus.'); } catch (\Exception $e) { Log::error('Gagal menghapus kelas: ' . $e->getMessage()); return redirect()->back()->withErrors('Gagal menghapus kelas.'); } } public function show($id) { $kelas = Kelas::with(['siswa', 'tahunAjaran'])->findOrFail($id); return view('admin.kelas.show', compact('kelas')); } }