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

Laravel中数组内对象如何使用required_without验证规则?

解决方案:数组对象的required_without验证

其实这个场景的实现比你想象的简单,Laravel的验证规则里,通配符*在处理数组元素时会自动对应到同一个索引位置,直接保持通配符的一致性就可以了。

你只需要这样写验证规则:

return [ 
    'array.*.property_a' => ['required_without:array.*.property_b'], 
    'array.*.property_b' => ['required_without:array.*.property_a'], 
];

原理说明

当验证器处理数组中的每个元素时,*会被替换为当前元素的索引(比如0、1、2等)。举个例子:

  • 验证array[0].property_a时,规则会检查array[0].property_b是否存在;
  • 验证array[1].property_a时,规则会检查array[1].property_b是否存在;

这样每个数组对象都会独立执行「至少提供property_a或property_b其中一个」的验证逻辑,完全符合你的需求,而且不会和其他数组元素的属性混淆。

虽然官方文档没有专门针对这个场景做说明,但这种通配符的联动是Laravel验证器对数组处理的原生支持,在主流版本(Laravel 5.5+)中都能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:48:48