【发布时间】:2023-04-11 00:48:01
【问题描述】:
我正在尝试验证我通过 API 请求发送但未成功验证的 JSON 对象(特别是整数数组)。
请求的主体有一个形式的变量:
| key | value |
|---|---|
| id | [1,2, "hello"] |
我做的验证如下:
$validation = Validator::make($request->all(),[
'id' => 'bail|required|json',
'id.*' => 'bail|integer|exists:products,id',
]);
if($validation->fails()){
return response()->json([
'status' => 'fail',
'message'=> $validation->messages()->first()
],422);
}
但它仍然通过了验证。 显然“id.*”的验证没有处理它,但我不明白为什么。
有人可以帮帮我吗?
非常感谢您。
【问题讨论】:
-
你为什么将它作为 json 文本发送?如果你仍然需要它,你需要做一个自定义验证laravel.com/docs/8.x/validation#using-closures
-
似乎
id.*验证模式用于验证对象/关联数组的数组。 -
@N69S 我真的不需要将它作为 JSON 对象发送。我只需要将其作为数组发送,但如果我将其作为数组进行验证,则验证规则不会通过。它返回一条消息“ID 必须是一个数组”。这就是我将其验证为 JSON 对象的原因。这有什么问题吗?
-
它不是一个“json 对象”,它只是一个代表 json 对象的字符串。有细微差别。添加到您的问题中,您是如何发送这些数据的。
标签: laravel api validation