我只对文件输入字段使用了单一验证规则。那是哑剧规则。如果没有上传文件,我想跳过此规则,所以我没有使用“必需”规则。但即使没有上传文件,它也始终显示mime类型的消息。我刚刚添加了测试所需的规则,当时它显示了所需的错误消息。只有在使用带有jquery.form.js
的ajax提交表单时才会出现此问题答案 0 :(得分:1)
您可以使用}
验证类型。
sometimes
存在时验证
在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查。要快速完成此操作,请将有时规则添加到规则列表中。
答案 1 :(得分:1)
您可以使用'file' => 'sometimes|mimes:jpeg,png'
规则。
sometimes
您可以在https://laravel.com/docs/5.4/validation#conditionally-adding-rules
查看更多相关信息答案 2 :(得分:0)
我最近在ajax上传中也遇到了同样的问题,并使用来处理文件验证
public function rules()
{
$rules = [
'invitation_message' => 'required'
];
if (request()->hasFile('invitation_excel_sheet')) {
$rules = array_merge($rules, [
'invitation_excel_sheet' => 'mimes:xlsx,csv'
]);
}
return $rules;
}
答案 3 :(得分:0)
另一种方法是使用exclude_if
:
public function rules()
{
return [
'link' => 'sometimes',
'newPdf' => 'exclude_if:link,null|mimes:pdf',
];
}