簡體   English   中英

如果字段是輸入類型文件,則laravel中的required_if驗證不會給出錯誤

[英]required_if validation in laravel not give error if filed is input type file

我有一種形式,其中有5個文本字段和2個輸入類型文件字段。 對於所有7個字段,我都在laravel中編寫了自定義驗證規則,並且如果類型是業務,我希望所有字段都是必需的,所以我在所有字段中都使用了required_if,對於文本字段來說它是有效的,但是對於圖像(輸入類型文件)它就不起作用它始終認為是請求中存在的文件,如果在我將其更改為要求時未上傳文件,則不會給出任何錯誤,因為它只會給我輸入類型文件的錯誤。

public function rules()
{
    return [
        'country'       => 'required_if:type,business',
        'country2'      => 'required_if:type,business',
        'company'       => 'required_if:type,business',
        'number' => 'required_if:type,business',
        'expiry' => 'required_if:type,business',
        'profile_pic'       => 'required_if:type,business  |  mimes:jpeg,jpg,png,pdf',
        'document_pic'      => 'required_if:type,business  |  mimes:jpeg,jpg,png,pdf',
    ];
}

由於額外的空間無效規則,該問題即將出現。 刪除了必需的if和mime類型之間的空格,以及其正常工作。

public function rules()
{
    return [
        'country'       => 'required_if:type,business',
        'country2'      => 'required_if:type,business',
        'company'       => 'required_if:type,business',
        'number' => 'required_if:type,business',
        'expiry' => 'required_if:type,business',
        'profile_pic'       => 'required_if:type,business|mimes:jpeg,jpg,png,pdf',
        'document_pic'      => 'required_if:type,business|mimes:jpeg,jpg,png,pdf',
    ];
}

您可以嘗試以下方法:

public function rules()
{
    return [
        'country'       => 'required_if:type,business',
        'country2'      => 'required_if:type,business',
        'company'       => 'required_if:type,business',
        'number'        => 'required_if:type,business',
        'expiry'        => 'required_if:type,business',
        'profile_pic'   => 'required_if:type,business|image',
        'document_pic'  => 'required_if:type,business|image',
    ];
}

也可以編輯我的: https : //laravel.com/docs/5.3/validation#rule-mimes

暫無
暫無

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

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