如何在 Laravel 中验证数组? [英] How to validate array in Laravel?

查看:72
本文介绍了如何在 Laravel 中验证数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在 Laravel 中验证数组 POST:

I try to validate array POST in Laravel:

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

我发送空的 POST 并得到这个 if ($validator->fails()) {} 作为 False.这意味着验证是真的,但事实并非如此.

I send empty POST and get this if ($validator->fails()) {} as False. It means that validation is true, but it is not.

如何在 Laravel 中验证数组?当我使用 input name="name[]"

How to validate array in Laravel? When I submit a form with input name="name[]"

推荐答案

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

Asterisk symbol (*) is used to check values in the array, not the array itself.

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

在上面的例子中:

  • "names" 必须是至少包含 3 个元素的数组,
  • names"数组中的
  • 必须是不同(唯一)的字符串,长度至少为 3 个字符.

从 Laravel 5.5 开始,您可以像这样直接在请求对象上调用 validate() 方法:

Since Laravel 5.5 you can call validate() method directly on Request object like so:

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

这篇关于如何在 Laravel 中验证数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆