首页 >后端开发 >php教程 >如何在 Laravel 中验证数组:空提交和最佳实践?

如何在 Laravel 中验证数组:空提交和最佳实践?

Barbara Streisand
Barbara Streisand原创
2024-11-27 16:29:11310浏览

How to Validate Arrays in Laravel: Empty Submissions and Best Practices?

在 Laravel 中验证数组

尝试使用以下代码在 Laravel 中验证数组时:

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

您可能会遇到意外的情况,空的 POST 提交被错误地识别为有效,从而导致错误正。

出现这种混乱是因为代码中的星号 (*) 旨在验证数组中的值,而不是数组本身。为了解决这个问题,应该修改验证规则来检查数组是否存在:

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

在此调整后的代码中:

  • “names”确保“names” " POST 数据中的键存在并包含一个数组。
  • "names.*" 然后验证 "names" 数组中的各个值,确保它们是必需的,最小长度为 3 个字符的唯一字符串。

从 Laravel 5.5 开始,可以采用简化的方法:

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

这种紧凑的语法直接执行验证在 Request 对象上,消除了对 $validator 中介的需要。

以上是如何在 Laravel 中验证数组:空提交和最佳实践?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn