簡體   English   中英

Laravel required_if 和 mimes 對文件輸入不起作用

[英]Laravel required_if and mimes not working on file input

請求文件中的代碼

public function rules()
{
    return [
        'type' =>'required|in:1,2',
        'add' => 'required_if:type,2|in:1,2',
        'image' => 'required_if:add,2|mimes:jpeg,jpg,png,webp|max:10000'
    ];
}

添加屬性 select 框有 2 個選項:

  1. 不要上傳圖片
  2. 上傳圖片

圖像屬性上,我確實使用了 required_if添加屬性的值為 2(即選項 2,我想添加圖像),然后才使圖像字段成為必填字段並進行 mimes 和最大文件大小驗證。

但問題是當從添加 select 框中選擇選項一時,這意味着我不想上傳圖像然后用戶提交表單,這會引發驗證:
圖片必須是以下類型的文件:jpeg、jpg、png、webp。
根據我的驗證代碼,它應該忽略它,因為只有在選擇了選項 2 時才需要它,那么為什么會拋出這個 mimes 驗證錯誤。

我認為您可以在 required_if 之后簡單地添加 nullable

'cover'=>['required_if:can_upload_file,true','nullable','mimes:jpeg,jpg,png','max:5120']

添加此代碼

 return [
    'image.*' => 'nullable',
    'image.required' => 'mimes:jpeg,jpg,png,webp|max:10000'
  ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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