input('per_page', 15); // Default 15 jika tidak dikirim oleh client $advertisements = Advertisement::paginate($perPage); $advertisements->getCollection()->transform(function ($advertisement) { $village = DB::table('villages')->where('village_code', $advertisement->village_code)->first(); $advertisement->village_name = $village ? $village->village_name : null; $district = DB::table('districts')->where('district_code', $advertisement->district_code)->first(); $advertisement->district_name = $district ? $district->district_name : null; return $advertisement; }); return response()->json([ 'data' => AdvertisementResource::collection($advertisements), 'meta' => [ 'total' => $advertisements->total(), 'per_page' => $advertisements->perPage(), 'current_page' => $advertisements->currentPage(), 'last_page' => $advertisements->lastPage(), ] ]); } /** * Store a newly created resource in storage. */ public function store(AdvertisementRequest $request): Advertisement { $data = $request->validated(); // Transformasi village_name dan district_name menjadi village_code dan district_code if (isset($data['village_name'])) { // Ambil village_code berdasarkan village_name dari database $data['village_code'] = DB::table('villages')->where('village_name', $data['village_name'])->value('village_code'); unset($data['village_name']); // Hapus village_name jika sudah tidak diperlukan } if (isset($data['district_name'])) { // Ambil district_code berdasarkan district_name dari database $data['district_code'] = DB::table('districts')->where('district_name', $data['district_name'])->value('district_code'); unset($data['district_name']); // Hapus district_name jika sudah tidak diperlukan } // Log data setelah transformasi info($data); return Advertisement::create($data); } /** * Display the specified resource. */ public function show(Advertisement $advertisement): Advertisement { return $advertisement; } /** * Update the specified resource in storage. */ public function update(AdvertisementRequest $request, Advertisement $advertisement): Advertisement { $data = $request->validated(); // Transformasi village_name dan district_name menjadi village_code dan district_code if (isset($data['village_name'])) { // Ambil village_code berdasarkan village_name dari database $data['village_code'] = DB::table('villages')->where('village_name', $data['village_name'])->value('village_code'); unset($data['village_name']); // Hapus village_name jika sudah tidak diperlukan } if (isset($data['district_name'])) { // Ambil district_code berdasarkan district_name dari database $data['district_code'] = DB::table('districts')->where('district_name', $data['district_name'])->value('district_code'); unset($data['district_name']); // Hapus district_name jika sudah tidak diperlukan } // Log data setelah transformasi info($data); $advertisement->update($data); return $advertisement; } public function destroy(Advertisement $advertisement): Response { $advertisement->delete(); return response()->noContent(); } }