validateRequest($request, $id); $this->updateNominee($request, $id); return response()->json([ 'status' => 'success', 'message' => 'Nominee updated successfully' ]); } private function validateRequest($request, $id) { $this->validate($request, [ 'name' => [ 'required', Rule::unique('nominee')->ignore($id)->where(function($query){ $query->where('election_id', Util::getCurrentElection()); }) ], 'student_id' => [ 'required', Rule::unique('nominee')->ignore($id)->where(function($query){ $query->where('election_id', Util::getCurrentElection()); }) ], 'unit' => 'required', 'position_id' => 'required|exists:nominee,position_id', 'partylist_id' => 'nullable|exists:nominee,partylist_id' ]); } private function updateNominee ($request, $id) { $nominee = Nominee::find($id); $default_image = $nominee->image; $nominee->name = $request->name; $nominee->unit = $request->unit; $nominee->student_id = $request->student_id; $nominee->position_id = $request->position_id; $nominee->partylist_id = $request->partylist_id; $nominee->motto = $request->motto; $nominee->description = $request->description; $nominee->image = Util::getImagePath($request, config('app.nominee_directory'), $default_image); $nominee->save(); if (!empty($request->image)) Util::deleteImage($default_image); } }