middleware('auth'); parent::__construct(); } public function index(Request $request) { if ($request->ajax()) { $data = Penyakit::latest(); return DataTables::of($data) ->addIndexColumn() ->addColumn('action', function ($data) { return 'Ubah ' . ''; }) ->addColumn('image', function ($data) { if ($data->image) { return 'image") . '" style="width: 50px">'; // return 'image") . '" width="30px" height="30px" />'; } return ''; }) ->rawColumns(['action', 'image']) ->make(true); } return view('penyakit.index'); } public function add() { return view('penyakit.create'); } public function store(Request $request) { $request->validate([ 'code' => 'required|max:255|unique:penyakit', 'name' => 'required|max:255', 'solution' => 'nullable', 'image' => 'nullable|mimes:jpeg,jpg,bmp,png|max:10240', ]); $data = new Penyakit(); $data->code = $request->code; $data->name = $request->name; $data->solution = $request->solution; if ($request->hasFile('image')) { $image = $request->file('image'); $imageName = Str::random(5) . date("His") . '.' . $image->extension(); $image->move(public_path('storage'), $imageName); $data->image = $imageName; } try { $data->save(); return redirect()->route('penyakit.index')->with('success', 'Data Berhasil Ditambahkan'); } catch (\Exception $e) { return back()->withInput()->withErrors(['error' => $e->getMessage()]); } } public function edit($id) { $data = Penyakit::findOrFail($id); return view('penyakit.edit', compact('data', 'id')); } public function update(Request $request) { $id = $request->id; $request->validate([ 'code' => 'required|max:255|unique:penyakit,code,' . $id, 'name' => 'required|max:255', 'solution' => 'nullable', 'image' => 'nullable|mimes:jpeg,jpg,bmp,png|max:10240', ]); $data = Penyakit::findOrFail($id); $data->code = $request->code; $data->name = $request->name; $data->solution = $request->solution; if ($request->hasFile('image')) { $image = $request->file('image'); $imageName = Str::random(5) . date("His") . '.' . $image->extension(); $image->move(public_path('storage'), $imageName); $data->image = $imageName; } try { $data->save(); return redirect()->route('penyakit.index')->with('success', 'Data Berhasil Diubah'); } catch (\Exception $e) { return back()->withInput()->withErrors(['error' => $e->getMessage()]); } } public function delete(Request $request) { $id = $request->id; $data = Penyakit::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()]); } } }