middleware('auth'); parent::__construct(); } public function index(Request $request) { if ($request->ajax()) { $data = Gejala::latest(); return DataTables::of($data) ->addIndexColumn() ->addColumn('action', function ($data) { return 'Ubah ' . ''; }) ->rawColumns(['action']) ->make(true); } return view('gejala.index'); } public function add() { return view('gejala.create'); } public function store(Request $request) { $request->validate([ 'code' => 'required|max:255|unique:gejala', 'name' => 'required|max:255', 'value_cf_pakar' => 'required|numeric|between:0,1', ]); $data = new Gejala(); $data->code = $request->code; $data->name = $request->name; $data->value_cf_pakar = $request->value_cf_pakar; try { $data->save(); return redirect()->route('gejala.index')->with('success', 'Data Berhasil Ditambahkan'); } catch (\Exception $e) { return back()->withInput()->withErrors(['error' => $e->getMessage()]); } } public function edit($id) { $data = Gejala::findOrFail($id); return view('gejala.edit', compact('data', 'id')); } public function update(Request $request) { $id = $request->id; $request->validate([ 'code' => 'required|max:255|unique:gejala,code,' . $id, 'name' => 'required|max:255', 'value_cf_pakar' => 'required|numeric|between:0,1', ]); $data = Gejala::findOrFail($id); $data->code = $request->code; $data->name = $request->name; $data->value_cf_pakar = $request->value_cf_pakar; $data->save(); return redirect()->route('gejala.index')->with('success', 'Data Berhasil Diubah'); } public function delete(Request $request) { $id = $request->id; $data = Gejala::findOrFail($id); try { $data->delete(); return response()->json(['status' => 'success', 'message' => 'Berhasil Menghapus Data']); } catch (\Illuminate\Database\QueryException $ex) { if ($ex->getCode() === '23000') return response()->json(['status' => 'error', 'message' => 'Gagal Menghapus Data: Terdapat Ketergantungan Data.']); } catch (\Throwable $e) { return response()->json(['status' => 'error', 'message' => 'Terjadi Kesalahan: ' . $e->getMessage()]); } } }