【问题标题】:Laravel validator for input arrays输入数组的 Laravel 验证器
【发布时间】:2021-03-06 15:43:40
【问题描述】:

首先:

我正在尝试验证包含 input[text] 的数组。它们目前被定义为:

<input type='text' name='user[0][name]'/><div>@error('user[0][name]'){{ $message }}@enderror</div>
<input type='text' name='user[1][name]'/><div>@error('user[1][name]'){{ $message }}@enderror</div>

我也尝试了以下 3 种变体:

<input type='text' name='user[][name]'/>
<input type='text' name='name[]'/>
<input type='text' name='name[0]'/>

我的 ExampleControllerstore() 方法中执行此操作:

    $validator = Validator::make($request->all(), [
        'user.*.name' => 'required|string',
    ])->validate();

我也尝试过使用:

    $validatedData = $request->validate([
        "user.*.name"    => "required|string",
    ]);//*/

我尝试用来匹配的另一个选项是(对于另一种情况):

    'name.*' => 'required|string',

这些都不能在输入之后的 div 中打印错误消息。

我看到错误的唯一方法是,如果我对以下两个进行验证(针对每种情况):

"user[0][name]"    => "required|string",
"name[0]"          => "required|string",

那么……我做错了什么?

【问题讨论】:

    标签: laravel eloquent laravel-blade laravel-8


    【解决方案1】:

    user[0][name] 是命名表单输入元素的正确语法。

    但是,要访问错误消息,请使用点表示法:user.0.name

    这是一个有效的playground

    【讨论】:

    • 就是这样。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 2014-09-20
    • 2021-12-07
    • 2016-12-16
    • 1970-01-01
    • 2013-03-08
    • 2016-07-22
    相关资源
    最近更新 更多