【发布时间】:2019-02-25 04:48:17
【问题描述】:
我正在创建一个 FormRequest,它根据其字段名称验证它是否包含图像。以下是我的规则:
public function rules(){
return [
'username' => 'required|exists:users',
'key' => 'required|exists:users,activation_key',
'id' => 'sometimes|required|array|min:2',
'id.*' => 'sometimes|required|file|mimes:jpeg,jpg,png|max:5000',
'documents' => 'sometimes|required|array|min:4',
'documents.*' => 'sometimes|required|file|mimes:jpeg,jpg,png,doc,pdf,docx,zip|max:5000',
'g-recaptcha-response' => 'required',
];
}
换句话说,上传文件的数组在设置时会被验证。我正在处理这个槽刀片。
我的请求通过Jquery.ajax() 完成,并使用new FormData($('selector')[0]) 获取字段值。我的 ajax 参数是正确的,所以这不重要。
问题是,在使用空白表单发出 HTTP 请求时,唯一正在验证的内容是 username、key 和 g-recaptcha-response
进一步调试表明,删除 sometimes 规则使其工作。但我只需要有条件地检查一个(例如/upload-id 将只显示id[] 字段,/upload-documents 将只显示document[] 字段)。
【问题讨论】:
-
删除
sometimes|required并仅使用sometimes
标签: jquery ajax validation laravel-5 form-data