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

Laravel 8 API Form Request 如何对可选嵌套JSON对象实现条件校验

解决方案

你只需要给user.*.car.color.front和user.*.car.color.back两个字段加上required_with校验规则即可,该规则会仅在指定的color字段存在且不为空时,才触发当前字段的必填校验。

修改后的完整校验规则如下:

public function rules()
{
    return [
        'user' => 'required|array',
        'user.*.name' => 'required|string',
        'user.*.car' => 'required|array',
        'user.*.car.model' => 'required|string',
        'user.*.car.color' => 'nullable|array',
        'user.*.car.color.front' => 'required_with:user.*.car.color|string',
        'user.*.car.color.back' => 'required_with:user.*.car.color|string',
    ];
}

规则说明

  • required_with:user.*.car.color:当请求中存在user.*.car.color字段且值不为null时,才要求当前字段(front/back)必须存在且为字符串;如果color字段未传或为null,会自动跳过这两个字段的校验。
  • 如果需要额外限制color对象传值时必须为非空数组,可以给user.*.car.color补充min:2规则,避免用户传入空的color对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:54:08