【问题标题】:Laravel Validation depending on the value of fieldLaravel 验证取决于字段的值
【发布时间】:2019-02-05 16:38:35
【问题描述】:

假设我有一个包含一些值的组合框

<option value="0">All</option>
<option value="1">ABC</option>
<option value="2">PQR</option>
<option value="3">XYZ</option>

我的验证如下

'dept_id' => 'required|exists:department,id'

如您所见,我希望 dept_id 字段是部门表 id 列中存在的 id,但我的第一个选项是 "All",其 id 显然不存在于部门表中。 p>

如果在 Laravel 5.6 中 value=0,我怎么能忽略 exists 规则

【问题讨论】:

    标签: php laravel laravel-5 laravel-validation


    【解决方案1】:

    您有两种方法可以创建custom validation 规则,

    或者有这样的 HTML

    <option>All</option>
    <option value="1">ABC</option>
    <option value="2">PQR</option>
    <option value="3">XYZ</option>
    

    并删除required 规则。

    我推荐自定义验证规则的方式,一个例子是这样的

    $validator = Validator::make($request->all(), [
        'dept_id' => [
            'required',
            function($attribute, $value, $fail) {
                if ($value != '0') {
                   // check the existence of $value in db 
                   // if exists return true
    
                }
                // return error because it was neither found in db  nor its All
                return $fail($attribute.' is invalid.');
            },
        ],
    ]);
    
    $validatior->validate();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-08
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 2017-02-22
      • 1970-01-01
      • 2016-01-20
      相关资源
      最近更新 更多