如果字段是输入类型文件,则laravel中的required_if验证不会给出错误

问题描述 投票:0回答:2

我有一个表单,我有5个文本字段和2个输入类型文件字段。对于所有7个字段,我已经在laravel中编写了自定义验证规则,如果类型是业务我想要所有字段,所以我在所有字段中使用required_if,对于文本字段它正在工作但是对于图像(输入类型文件)它不起作用它始终被视为文件存在于请求中,如果文件未上传,当我将其更改为required时它不会给出任何错误,它只会给我输入类型文件的错误。

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',
    ];
}
php laravel validation laravel-5.6
2个回答
1
投票

你可以试试这个:

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


0
投票

由于额外的空间无效规则,问题即将来临。删除了所需的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',
    ];
}
© www.soinside.com 2019 - 2024. All rights reserved.