'required|string|max:255', 'avatar' => 'nullable|image|max:2048', // 2MB max 'current_password' => [ 'nullable', 'required_with:new_password', function ($attribute, $value, $fail) { if ($value && md5($value) !== auth()->user()->pass) { $fail('Mật khẩu hiện tại không chính xác.'); } }, ], 'new_password' => 'nullable|min:6|confirmed|different:current_password', ]; } /** * Get the error messages for the defined validation rules. */ public function messages(): array { return [ 'name.required' => 'Họ và tên không được để trống.', 'name.string' => 'Họ và tên phải là chuỗi ký tự.', 'name.max' => 'Họ và tên không được vượt quá 255 ký tự.', 'avatar.image' => 'Ảnh đại diện phải là tệp ảnh.', 'avatar.max' => 'Ảnh đại diện không được vượt quá 2MB.', 'new_password.min' => 'Mật khẩu mới phải có ít nhất 6 ký tự.', 'new_password.confirmed' => 'Mật khẩu xác nhận không trùng khớp.', 'new_password.different' => 'Mật khẩu mới phải khác mật khẩu hiện tại.', ]; } }