You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中数组验证功能失效问题求助

Laravel 9数组验证失效原因排查及解决

问题核心原因

你初始化验证器时,第一个参数已经通过$request->input('data_attributes')拿到了目标数组,但验证规则里却错误地使用data_attributes.*.nic作为字段名。此时验证器会在传入的数组(即原data_attributes的实际值)中寻找名为data_attributes的子键,而这个键根本不存在,导致验证规则完全没有触发。

修复方案

将验证规则中的字段名改为*.nic,直接针对传入数组的子元素做验证:

$validator = Validator::make($request->input('data_attributes'), [
    '*.nic' => 'required|max:9'
]);

补充写法

如果你的请求整体结构是外层包含data_attributes键(比如request()->all()返回['data_attributes' => [/* 你的数组数据 */]]),也可以保留data_attributes.*.nic规则,但此时验证器的第一个参数要传入整个请求数据,而非单独的data_attributes值:

$validator = Validator::make($request->all(), [
    'data_attributes.*.nic' => 'required|max:9'
]);

两种写法二选一即可,核心是保证规则中的字段路径和传入验证器的数据源结构完全匹配。

内容的提问来源于stack exchange,提问作者Indrakumara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:55:20