如何在 Laravel 中验证数组?
如何在 Laravel 中验证数组?
我试图在 Laravel 中验证数组 POST:
$validator = Validator::make($request->all(), [ "name.*" => 'required|distinct|min:3', "amount.*" => 'required|integer|min:1', "description.*" => "required|string" ]);
我发送了空 POST 并获得了这个 if ($validator->fails()) {}
作为 False
。这意味着验证是 true,但实际上不是。
如何在 Laravel 中验证数组?当我提交一个带有 input name=\"name[]\"
的表单时
admin 更改状态以发布 2023年5月25日
我有一个来自HTML+Vue.js数据网格/表格的请求数据的数组:
[0] => Array ( [item_id] => 1 [item_no] => 3123 [size] => 3e ) [1] => Array ( [item_id] => 2 [item_no] => 7688 [size] => 5b )
我使用这个来进行验证,它运行良好:
$this->validate($request, [ '*.item_id' => 'required|integer', '*.item_no' => 'required|integer', '*.size' => 'required|max:191', ]);
星号符号 (*) 用于检查数组中的值,而不是数组本身。
$validator = Validator::make($request->all(), [ "names" => "required|array|min:3", "names.*" => "required|string|distinct|min:3", ]);
在上面的示例中:
- “names”必须是具有至少3个元素的数组,
- “names”数组中的值必须是不同的(唯一的)字符串,长度至少为3个字符。
编辑:自 Laravel 5.5 起,您可以直接在 Request 对象上调用 validate() 方法,如下所示:
$data = $request->validate([ "name" => "required|array|min:3", "name.*" => "required|string|distinct|min:3", ]);