让我们说我有这样的JSON请求到我的Laravel路由验证第二级阵列/ JSON使用Laravel验证
{
"user_id":1,
"payment_type":"point",
"order_boxes":[
{
"for_friend_name":"Yansen",
"order_box_items":[
{
"product_id": 1,
}
]
}
]
}
我可以验证请求最多使用此代码使用Laravel验证“order_boxes”阵列级别:
$rules = [
'user_id' => 'required|exists:users,id',
'payment_type' => 'required|in:point,cod,transfer,credit_card',
'order_boxes' => 'required|array',
];
$validator = Validator::make($request->all(), $rules);
$validator->each('order_boxes',[
'for_friend_name' => ['max:25'],
'order_box_items' => ['required','array']
]);
正如您在“order_boxes”里面看到的“order_box_items”那样,我添加了另一个“数组”规则并尝试再次验证数组。我添加下面的代码如下:
$validator->each('order_box_items',[
'product_id' => ['required','exists:products,id']
]);
但它返回“属性为每个()必须是一个数组”。
所以我相信$ validator-> each()只能验证数组的第一级。任何想法如何验证数组的第二级使用它?
谢谢
不是验证器方面的专家,但验证器如果不在'$ request-> all'的根目录下如何提取''order_box_items''的值? – Amarnasan