【Laravel5.8】Formから複数のレコードを挿入したい

nekorokkekun.hatenablog.com


こちらの記事では、複数レコードの更新をしましたが、以下のコードで新たに挿入することが可能です。

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>