【发布时间】:2023-03-16 07:35:02
【问题描述】:
问题:如何正确验证通过 API 请求发送的 JSON 对象数组?
情况:
我发送了一个要保存的 JSON 对象数组的发布请求。但是,我无法进行验证。
JSON
{
"answers": [
{
"title": "hello World",
"question_id": "1"
},
{
"title": "hello World 2",
"question_id": "2"
}
]
}
尝试 #1
Route::post('answer/multiple', function (Request $request) {
$answers = $request->answers;
foreach ($answers as $answer) {
$answer->validate([
'title' => 'required',
'question_id' => 'required',
]);
$new_answer = new Answer();
$new_answer->title = $answer['title'];
$new_answer->question_id = $answer['question_id'];
$new_answer->save();
}
return response()->json($request);
});
我也试过循环遍历每一个来验证,遗憾的是它不起作用。
尝试 #2
Route::post('answer/multiple', function (Request $request) {
$validator = Validator::make($request->all(), [
'answer.*.title' => 'required',
'answer.*.question_id' => 'required',
]);
$answers = $request->answers;
foreach ($answers as $answer) {
$new_answer = new Answer();
$new_answer->title = $answer['title'];
$new_answer->question_id = $answer['question_id'];
$new_answer->save();
}
return response()->json($request);
});
在这一项中,验证被忽略。
【问题讨论】:
标签: php json laravel-routing laravel-6