讓我們說我有這樣的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