【问题标题】:Laravel 6 validation: there is limit in number of rules?Laravel 6 验证:规则数量有限制?
【发布时间】:2020-05-17 10:54:03
【问题描述】:

我使用的是 Laravel 6.13.1。

我有以下验证

$validator = Validator::make($request->all(), [
    'name' => 'required|max:100',
    'email' => 'required|email',
    'mobile_number' => 'required',
    'date_of_birth' => 'required',
    'address' => 'required',
    'category' => 'required',
    'other_category' => 'required_if:category,==,Others',
    'sub_caste' => 'required',
    'photo' => 'required',
    'status' => 'required|integer',
    'father_name' => 'required',
    'father_occupation' => 'required',
]);


if ($validator->fails()) {
    return back()->withErrors($validator)->withInput();                    
}

它有 12 条规则并且有效。如果我再添加一条规则,那么验证器将停止工作。

{{$errors}} 在视图文件中给出一个空数组。

编辑 1:12 条规则的验证显示所有错误消息,但如果我再添加一个验证,例如

$validator = Validator::make($request->all(), [
    'name' => 'required|max:100',
    'email' => 'required|email',
    'mobile_number' => 'required',
    'date_of_birth' => 'required',
    'address' => 'required',
    'category' => 'required',
    'other_category' => 'required_if:category,==,Others',
    'sub_caste' => 'required',
    'photo' => 'required',
    'status' => 'required|integer',
    'father_name' => 'required',
    'father_occupation' => 'required',
    'mother_name' => 'required',         
]);

然后没有错误消息。 {{$errors}} 是一个空数组。

在我看来,我正在使用以下代码列出错误

      @if (count($errors) > 0)
      <div class="alert alert-danger">
        <ul>
          @foreach ($errors->all() as $error)
          <li>{{ $error }}</li>
          @endforeach
        </ul>
      </div>
      @endif

编辑 2:我在 Laravel 5.5 上尝试了相同的验证,并且缩进效果很好。

【问题讨论】:

  • 我认为我从未见过限制。它是如何停止工作的?你能用 13 条规则展示验证器吗?
  • 您能添加最后一个停止验证的rule 吗?
  • @anber 停止工作,没有错误信息。
  • @joseph 我添加了最后一条规则。
  • 您能否尝试停止redirect 方法并尝试仅返回类似return $validator-&gt;errors(); 的错误以查看此处发生的情况

标签: php laravel laravel-6 laravel-validation


【解决方案1】:

我遇到了同样的问题,并在某处发现这可能是由错误消息的大小引起的。我已将 SESSION_DRIVER env 选项从“cookie”更改为“file”,并且成功了!

【讨论】:

    【解决方案2】:

    我认为它没有限制,但是您可以创建一个请求并将所有验证都放在上面:

    php artisan make:request UserRequest
    

    您可以查看此链接Form Request Validation

    【讨论】:

      猜你喜欢
      • 2020-06-28
      • 2016-05-13
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2014-05-08
      • 2015-02-21
      相关资源
      最近更新 更多