[英]Laravel mimes validation always called even if no input file is uploaded (Not used required rule)
我僅對文件輸入字段使用了單一驗證規則。 這就是啞劇法則。 如果沒有上傳文件,我想跳過這個規則,所以我沒有使用“必需”規則。 但即使沒有上傳文件,它也總是顯示 mime 類型的消息。 我剛剛添加了測試所需的規則,當時它顯示了所需的錯誤消息。 此問題僅在使用 ajax 和 jquery.form.js 提交表單時出現
您可以為此使用sometimes
驗證類型。
'file' => 'sometimes|mimes:jpeg,png'
存在時驗證
在某些情況下,您可能希望僅當輸入數組中存在該字段時才對該字段運行驗證檢查。 要快速完成此操作,請將有時規則添加到您的規則列表中。
您可以使用sometimes
規則。
'photo' => 'sometimes|mimes:jpeg,bmp,png'
您可以在此處查看更多相關信息https://laravel.com/docs/5.4/validation#conditionally-adding-rules
我最近用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;
}
另一種方法是使用exclude_if
:
public function rules()
{
return [
'link' => 'sometimes',
'newPdf' => 'exclude_if:link,null|mimes:pdf',
];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.