'required|string', 'nilai_kalori' => 'nullable' ]; } public function messages(){ return [ 'nama_karbohidrat.required' => 'Nama Karbohidrat wajib diisi' ]; } protected function failedValidation(Validator $validator){ throw new HttpResponseException( response()->json([ 'status' => 'VALIDATION_FAILED', 'message' => 'Validasi Gagal', 'errors' => $validator->errors()->messages(), ], 422) ); } public function withValidator($validator){ $validator->after(function($validator){ $id = $this->route('karbohidrat') ?? $this->karbohidrat_id ?? null; $exists = DB::connection('dbOrderGizi') ->table('public.karbohidrat') ->where('statusenabled', true) ->where('nama_karbohidrat', 'ILIKE', $this->input('nama_karbohidrat')); if($id) $exists->where('karbohidrat_id', '!=', $id); if($exists->exists()){ $validator->errors()->add( 'nama_karbohidrat', 'Nama Karbohidrat sudah digunakan' ); } }); } }