如何在 php 中验证和插入对象数组?

How to validate and insert array of objects in php?

我想验证对象数组并将其插入到我的数据库中。这是我的对象数组:(前端 js)

studentData: [
  {id: 1, name: 'Juan'},
  {id: 2, name: 'Jema'},
]

这是我当前 StudentController.php 的代码:

for($i; $i <= count($request->input());  $i++){
  $student = Student::create([
    'id' => $request[$i]["id"],
    'name' => $request[$i]["name"],
  ]);
}

当我插入我的所有对象时,这非常有效。现在,我想验证所有请求。此代码无效:

$validate = $request[$i]->validate([
                'id' => 'required|unique:students|numeric'
            ]);

for($i; $i <= count($request->input());  $i++){
  $validate = $request[$i]->validate([
    'id' => 'required|unique:students|numeric'
  ]); //this is the error. I cant validate the data foreach user

  $student = Student::create([
    'id' => $request[$i]["id"],
    'name' => $request[$i]["name"],
  ]);
}

你必须像这样用点做数组输入验证:

$this->validate($request,[
    'studentData.*.id' => 'required|unique:students|numeric',
    'studentData.*.name' =>'required'
],
$messages = [
 // write error messages
]);

希望您能理解。

您可以在此处查看 laravel 数组输入验证文档 https://laravel.com/docs/5.6/validation#validating-arrays