【问题标题】:L8 - API - Form Request on optional input JSON objectL8 - API - 可选输入 JSON 对象的表单请求
【发布时间】:2021-12-23 06:35:48
【问题描述】:

我正在处理表单请求,我有一个关于如何将它与可选输入对象一起使用的问题。

我的 API 得到一个简单的 JSON 输入,例如:

{
    "user": [
        {
            "name": "Valentino",
            "car": {
                "model": "ferrari",
                "color": {
                    "front": "red",
                    "back": "black"
                }
            }
        },
            "name": "Stefano",
            "car": {
                "model": "mercedes"
            }
        }
    ]
}

控制器:

public function insertUser(StoreUserRequest $request) {
}

请求验证类:

public function rules()
{
  return [ 
    'user' => 'required|array',
    'user.*.name' => 'string|required',
    'user.*.car' => 'required|array', 
    'user.*.car.model' => 'required|string', 
    'user.*.car.color' => 'nullable|array',  // could be present or not 
    'user.*.car.color.front' => 'required|string',  // should be validated only if exists 'color'
    'user.*.car.color.back' => 'required|string', // should be validated only if exists 'color'
  ];
}

color 对象在输入 JSON 中是可选的;我如何设置StoreUserRequest.php 类来验证color 对象是否存在?

非常感谢!

【问题讨论】:

    标签: validation laravel-8 laravel-formrequest


    【解决方案1】:

    @Tippin 告诉我使用required_with 规则的解决方案:

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

    谢谢

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2013-10-25
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      相关资源
      最近更新 更多