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

查看:1669
本文介绍了如何在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 form with input name="name[]"

推荐答案

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

Asterisk symbol (*) means that you want to check VALUES in the array, not the actual array.

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

在上面的示例中:

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

编辑:从Laravel 5.5开始,您可以像这样直接在Request对象上调用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天全站免登陆