query('per_page', 10); $search = $request->query('search', ''); $provinsi = Provinsi::all(); $kabupatenkota = KabupatenKota::with('provinsi') ->where('nama', 'like', "%$search%") ->orWhere('kode', 'like', "%$search%") ->orWhereHas('provinsi', function($query) use ($search) { $query->where('nama', 'like', "%$search%"); }) ->orderBy('kode', 'asc') ->paginate($perPage); return view('master.kabupatenkota.index', compact('title', 'kabupatenkota', 'provinsi')); } public function getByProvinsi($provinsi_id) { $kabupaten = KabupatenKota::where('provinsi_id', $provinsi_id) ->orderBy('nama', 'asc') ->get(); return response()->json($kabupaten); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'kode' => ['required', 'max:4', 'min:4', 'unique:master_kabupaten_kota,kode'], 'nama' => ['required'], 'path' => ['nullable'], 'provinsi_id' => ['required', 'exists:master_provinsi,id'] ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => 'Terdapat kesalahan pada input Anda.', 'errors' => $validator->errors() ], 422); } KabupatenKota::create([ 'kode' => $request->kode, 'nama' => $request->nama, 'path' => $request->path, 'provinsi_id' => $request->provinsi_id, 'created_by' => auth()->id(), 'updated_by' => auth()->id(), ]); return response()->json([ 'status' => 'success', 'message' => 'Kabupaten/Kota berhasil ditambahkan.' ]); } public function view($id) { $kabupatenKota = KabupatenKota::with('provinsi:id,nama') ->find($id); if (!$kabupatenKota) { return response()->json([ 'status' => 'error', 'message' => 'Data tidak ditemukan' ], 404); } return response()->json([ 'status' => 'success', 'data' => [ 'id' => $kabupatenKota->id, 'kode' => $kabupatenKota->kode, 'nama' => $kabupatenKota->nama, 'path' => $kabupatenKota->path, 'provinsi_id' => $kabupatenKota->provinsi_id, 'nama_provinsi' => $kabupatenKota->provinsi->nama ] ]); } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'kode' => ['required', 'max:4', 'min:4', "unique:master_kabupaten_kota,kode,$id"], 'nama' => ['required'], 'path' => ['nullable'], 'provinsi_id' => ['required', 'exists:master_provinsi,id'] ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => 'Validasi gagal', 'errors' => $validator->errors() ], 422); } $kabupatenKota = KabupatenKota::find($id); if (!$kabupatenKota) { return response()->json(['status' => 'error', 'message' => 'Data tidak ditemukan'], 404); } $kabupatenKota->update([ 'kode' => $request->kode, 'nama' => $request->nama, 'path' => $request->path, 'provinsi_id' => $request->provinsi_id, 'updated_by' => auth()->id(), ]); return response()->json(['status' => 'success', 'message' => 'Data berhasil diperbarui!']); } public function destroy($id) { $kabupatenKota = KabupatenKota::find($id); if (!$kabupatenKota) { return response()->json([ 'status' => 'error', 'message' => 'Data tidak ditemukan.' ], 404); } $kabupatenKota->deleted_by = auth()->user()->id; $kabupatenKota->save(); $kabupatenKota->delete(); return response()->json([ 'status' => 'success', 'message' => 'Data kabupaten/kota berhasil dihapus.' ]); } }