【Laravel5.8】Formから複数のレコードを挿入したい
こちらの記事では、複数レコードの更新をしましたが、以下のコードで新たに挿入することが可能です。
Controller
public function registrateNewBook(Request $request){ $i = 0; foreach($request->num as $val){ $book = new Book; $book->category_id = $request->category_id[$i]; $book->title = $request->title[$i]; $book->author = $request->author[$i]; $book->isbn = $request->isbn[$i]; $book->price = $request->price[$i]; $book->publisher = $request->publisher[$i]; $book->status = $request->status[$i]; $book->photo_path = $request->photo_path[$i]; $book->save(); $i++; } return view('supplier.registration'); }
view
<form action="/registrateNewBook" method="post"> {{ csrf_field() }} @for($i = 0 ; $i < 3; $i ++) <tr> <td><input type="text" name="title[]"></td> <td><input type="text" name="author[]"></td> <td><input type="text" name="publisher[]"></td> <td><input type="text" name="isbn[]"></td> <td><input type="text" name="price[]"></td> <td><input type="file" name="photo_path[]"></td> <td> <select name="status[]"> <option value="1">新品同様</option> <option value="2">古本</option> <option value="3">汚い</option> <option></option> </select> </td> <td> <select name="category_id[]"> <option value="1">小説</option> <option value="2">ノンフィクション</option> <option value="3">ビジネス</option> <option value="4">漫画</option> <option value="5">その他</option> </select> </td> </tr> <input type="hidden" name="num[]"> @endfor <tr><td><input type="submit" value="登録"></td></tr> </form>