Laravel 5.8验证-始终根据任何规则保释

Dan*_*iel 5 validation laravel laravel-5 laravel-validation

是否有可能在不键入FormRequest规则的情况下将bail规则设置为默认使用规则?

代替:

class StoreRequest extends FormRequest {
    function rules() {
        return [
            'name' => 'bail|required|min:3',
            'last_name' => 'bail|required|min:3',
            'names' => 'bail|required|min:3',
            'email' => 'bail|required|email',
            'type' => 'integer|min:10|max:50',
            // [...]
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

我想获得更清洁的版本,例如:

class StoreRequest extends FormRequest {

    protected $stopsOnFirstError = true; // I can't find anything like this

    function rules() {
        return [
            'name' => 'required|min:3',
            'last_name' => 'required|min:3',
            'names' => 'required|min:3',
            'email' => 'required|email',
            'type' => 'integer|min:10|max:50',
            // [...]
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:

我的一些规则定义为数组:

'type' => [
    'bail',
    'required',
    'integer',
    Rule::in(ContactType::getValues()),
],
Run Code Online (Sandbox Code Playgroud)

Nik*_*aut 2

1)在不使其变得更复杂的情况下使用字符串替换

<?php
$rules = [
            'name' => 'required|min:3',
            'last_name' => 'required|min:3',
            'names' => 'required|min:3',
            'email' => 'required|email'
        ];
$stopsOnFirstError = true;
if(stopsOnFirstError){
  array_walk($rules, function(&$value, $key) { $value = 'bail|'.$value; } );
}

print_r($rules);
?>
Run Code Online (Sandbox Code Playgroud)

现场演示:链接

输出 :

Array
(
    [name] => bail|required|min:3
    [last_name] => bail|required|min:3
    [names] => bail|required|min:3
    [email] => bail|required|email
)
Run Code Online (Sandbox Code Playgroud)

2)您还可以通过其他方式执行此操作,只需添加即可'*' => 'bail',应用到所有字段

class StoreRequest extends FormRequest {
    function rules() {
        return [
            '*' => 'bail',
            'name' => 'required|min:3',
            'last_name' => 'required|min:3',
            'names' => 'required|min:3',
            'email' => 'required|email',
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)