一尘不染

如何在Laravel中验证数组?

php

我尝试在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。这意味着验证是正确的,但事实并非如此。

如何在Laravel中验证数组?当我提交表格时input name="name[]"


阅读 808

收藏
2020-05-26

共1个答案

一尘不染

星号(*)表示您要检查数组中的值,而不是实际数组。

$validator = Validator::make($request->all(), [
    "name"    => "required|array|min:3",
    "name.*"  => "required|string|distinct|min:3",
]);

在上面的示例中:

  • “名称”必须是至少包含3个元素的数组。
  • “名称”数组中的值必须是不同的(唯一)字符串,至少3个字符长。

编辑: 由于Laravel 5.5,您可以像这样直接在Request对象上调用validate()方法:

$data = $request->validate([
    "name"    => "required|array|min:3",
    "name.*"  => "required|string|distinct|min:3",
]);
2020-05-26