簡體   English   中英

即使沒有上傳輸入文件,Laravel mimes 驗證也始終調用(未使用必需規則)

[英]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'

存在時驗證

在某些情況下,您可能希望僅當輸入數組中存在該字段時才對該字段運行驗證檢查。 要快速完成此操作,請將有時規則添加到您的規則列表中。

Laravel 官方文檔

您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM