Как проверить и вставить массив объектов в php?
Я хочу проверить и вставить массив объектов в мою базу данных. Это мой массив объектов: (Front 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"],
]);
}
1 ответ
Решение
Вы должны сделать проверку ввода массива с точкой, как это:
$this->validate($request,[
'studentData.*.id' => 'required|unique:students|numeric',
'studentData.*.name' =>'required'
],
$messages = [
// write error messages
]);
Я надеюсь, что вы поймете.
Вы можете увидеть документы Laravel для проверки ввода массива здесь https://laravel.com/docs/5.6/validation