如果不需要字段,Laravel 不验证

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/46790048/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 16:49:07  来源:igfitidea点击:

Laravel do not validate if field is not required

phplaravelvalidation

提问by TheAngelM97

I've got the following request validation:

我有以下请求验证:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class OwnerEstate extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'firstname' => 'required_if:type,individual',
            'secondname'=> 'required_if:type,individual',
            'lastname' => 'required_if:type,individual',
            'pin' => 'required_if:type,individual|digits:10',

            'name' => 'required_if:type,legal-entity',
            'eik' => 'required_if:type,legal-entity|digits:9'
        ];
    }
}

And when the type is not individual it still checks for the 'digits:10'validation of the pin and returns an error. How do I disable the other validation if required_if validation does not require the field. (I'm using Laravel 5.5)

当类型不是个体时,它仍会检查pin的“digits:10”验证并返回错误。如果 required_if 验证不需要该字段,我该如何禁用其他验证。(我使用的是 Laravel 5.5)

回答by Devon

digits:10is completely separate from required_if, so it will validate whether or not the field is required. However, if you want to also allow null or empty values (assuming the field is not required), you can add the rule nullable.

digits:10与 完全分开required_if,因此它将验证是否需要该字段。但是,如果您还想允许空值或空值(假设该字段不是必需的),则可以添加规则nullable

https://laravel.com/docs/5.5/validation#rule-nullable

https://laravel.com/docs/5.5/validation#rule-nullable