'required|string|min:3|max:100', 'harga' => 'required|numeric|min:0', ]; } public function messages(): array { return [ 'required' => 'Kolom :attribute wajib diisi.', 'numeric' => ':attribute harus berupa angka.', 'string' => 'Input :attribute harus berupa teks valid.', 'min' => ':attribute minimal harus :min karakter/nilai.', 'max' => ':attribute melebihi batas maksimal :max karakter.', ]; } public function attributes(): array { return [ 'nama' => 'nama additional', 'harga' => 'harga additional', ]; } /** * Mengatur respon jika validasi gagal agar modal tidak tertutup. */ protected function failedValidation(Validator $validator) { $redirect = redirect()->back()->withErrors($validator)->withInput(); if ($this->isMethod('post')) { // Untuk modal tambah additional $redirect->with('error_modal', 'createAdd'); } else { // Untuk modal edit berdasarkan ID additional $redirect->with('error_id_add', $this->route('additional')); } throw new HttpResponseException($redirect); } }