在 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", ]);
在此调整后的代码中:
从 Laravel 5.5 开始,可以采用简化的方法:
$data = $request->validate([ "names" => "required|array|min:3", "names.*" => "required|string|distinct|min:3", ]);
这种紧凑的语法直接执行验证在 Request 对象上,消除了对 $validator 中介的需要。
以上是如何在 Laravel 中验证数组:空提交和最佳实践?的详细内容。更多信息请关注PHP中文网其他相关文章!