如何在 Laravel 中验证数组?

9 浏览
0 Comments

如何在 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日
0
0 Comments

我有一个来自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',
]);

0
0 Comments

星号符号 (*) 用于检查数组中的,而不是数组本身。

$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",
]);

0