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