|string> */ public function rules(): array { $rules = [ 'title' => ['required' , 'max:200'], 'content' => ['required'], 'link' => ['nullable', 'url'], 'tag' => ['nullable'], 'category' => ['required', 'in:0,1'], ]; if($this->isMethod('post')){ $rules['image'] = ['required', 'image', 'mimes:png,jpg,jpeg', 'max:4096']; }else if($this->isMethod('put')){ $rules['image'] = ['nullable', 'image', 'mimes:png,jpg,jpeg', 'max:4096']; } return $rules; } public function messages(): array { return [ 'title.required' => 'Judul harus diisi.', 'title.max' => 'Judul tidak boleh lebih dari 200 karakter.', 'content.required' => 'Konten harus diisi.', 'link.url' => 'Harus link valid.', 'category.required' => 'Kategori harus dipilih.', 'category.in' => 'Kategori harus bernilai berita atau pengumuman.', 'image.required' => 'Gambar wajib diunggah.', 'image.image' => 'File yang diunggah harus berupa gambar.', 'image.mimes' => 'Format gambar yang diperbolehkan adalah PNG, JPG, atau JPEG.', 'image.max' => 'Ukuran gambar tidak boleh lebih dari 4MB.', ]; } }