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

Laravel 8验证多维数组时无法校验parameters下子元素如何处理

问题原因

你当前的验证规则写法不符合Laravel的多维数组验证规范,Laravel使用点语法访问嵌套数组元素,不支持[下标]的写法,因此input.parameters[0].value这类规则无法正常触发校验。

解决方案

方案1:固定下标校验

如果你的parameters数组长度固定为2,且第0项对应cciaa、第1项对应nrea,可以直接用点语法写下标:

$validated = $request->validate ([
    'input.partita_iva'       => 'required',
    'input.codice_fiscale'    => 'required',
    // 校验第0项的name必须为cciaa,value必填
    'input.parameters.0.name' => 'required|in:cciaa',
    'input.parameters.0.value' => 'required',
    // 校验第1项的name必须为nrea,value必填
    'input.parameters.1.name' => 'required|in:nrea',
    'input.parameters.1.value' => 'required',
]);

方案2:动态长度批量校验

如果parameters数组长度不固定,想要校验数组内每一项都必须存在name和value字段,可以用通配符*匹配所有下标:

$validated = $request->validate ([
    'input.partita_iva'       => 'required',
    'input.codice_fiscale'    => 'required',
    'input.parameters.*.name' => 'required|string',
    'input.parameters.*.value' => 'required',
]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:45:01