ハッピーメモメモ

私的備忘録

【Vue】【Laravel】作品(storeアクション)

【Vue】【Laravel】書籍情報/登録

①/create にアクセス

②router.jsをみにいく

③Vue コンポーネント「Create」へ

 (Laravelだけでつくってたときは、ここがcreate.blade.phpだった)

➃登録したい情報を入力する

 →api/book_information にPOSTで送信するとstoreアクションがうごく

f:id:n-moeko1966:20220110111852p:plain

axiosの使い方まとめ (GET/POST/例外処理)-スケ郎のお話

⑤決まったルーティングによって、Laravel コントローラ「BookInformationController」のstoreアクションがうごく

⑥storeメソッドによって追加データをDBに保存

f:id:n-moeko1966:20220110150311p:plain

【Laravel】Eloquentのcreate、saveの使い分け、違いについて説明してみる | masablog

→このあと、DBに保存できたら書籍情報一覧にとぶようにしたいな…とりあえず機能的には満足したのでここで置いておく

 

貸出処理

Borrowコンポーネント

      // rentalsテーブルに貸出データを追加
      await axios.post("http://127.0.0.1:8000/api/rentals", {
        user_id: data.user_id,
        book_id: target_book_id,
        checkout_date: data.checkout_date,
      });

 

RentalController

    public function store(Request $request)
    {
        // ➀create メソッド
        $rental = Rental::create([
            'user_id' => $request->user_id,
            'book_id' => $request->book_id,
            'checkout_date' => $request->checkout_date,
        ]);
    }

どっちのやり方でもOK

    public function store(Request $request)
    {
        // ➁fill メソッド → save メソッド
        // Rentalモデルのインスタンスを新規作成
        $rental = new Rental();
        // 属性の代入を fill メソッドで保護
        $rental->fill([
            'user_id' => 6,
            'book_id' => 1,
            'checkout_date' => '2022-01-19',
        ]);
        // $rentalの内容をテーブル(DB)に保存
        $rental->save();
    }