get(); return view('admin.angket.prodi.index', compact('prodis')) ->with('success', session('success')) ->withErrors(session('error')); } public function create() { $mapels = Mapel::all(); return view('admin.angket.prodi.create', compact('mapels')); } public function store(Request $request) { $request->validate([ 'nama' => 'required', 'mapel_id' => 'array|required' ]); try { $prodi = ProdiLanjutan::create(['nama' => $request->nama]); $prodi->mapels()->attach($request->mapel_id); return redirect()->route('admin.prodi-lanjutan.index')->with('success', 'Prodi berhasil ditambahkan'); } catch (\Exception $e) { Log::error('Gagal menambahkan prodi: ' . $e->getMessage()); return back()->withInput()->withErrors('Terjadi kesalahan saat menambahkan prodi.'); } } public function edit($id) { $prodi = ProdiLanjutan::findOrFail($id); $mapels = Mapel::all(); return view('admin.angket.prodi.edit', compact('prodi', 'mapels')); } public function update(Request $request, $id) { $request->validate([ 'nama' => 'required', 'mapel_id' => 'array|required' ]); try { $prodi = ProdiLanjutan::findOrFail($id); $prodi->update(['nama' => $request->nama]); $prodi->mapels()->sync($request->mapel_id); return redirect()->route('admin.prodi-lanjutan.index')->with('success', 'Prodi berhasil diperbarui'); } catch (\Exception $e) { Log::error('Gagal memperbarui prodi: ' . $e->getMessage()); return back()->withInput()->withErrors('Terjadi kesalahan saat memperbarui prodi.'); } } public function destroy($id) { try { $prodi = ProdiLanjutan::findOrFail($id); $prodi->mapels()->detach(); $prodi->delete(); return back()->with('success', 'Prodi berhasil dihapus'); } catch (\Exception $e) { Log::error('Gagal menghapus prodi: ' . $e->getMessage()); return back()->withErrors('Terjadi kesalahan saat menghapus prodi.'); } } }