Laravel8 確認ページを経由したDBへの登録の仕方

メンバー登録(membersテーブルにinsert)のような場合を考えてみる。

入力フォーム -> 登録完了ページの場合

以下のようにすればPostされた値でテーブルにinsertしてくれる。

$member = Member::create($request->all());
または
$member = new Member($request->all());
$member->save()

入力フォーム -> 確認ページ -> 登録完了ページの場合

入力フォームから確認ページに遷移時、通常以下のようにPostされた値をセッションに預ける。

$request->session()->put('member', $request->all());

なので、登録完了ページではPost値からではなくセッション値を使ってテーブルへinsertしなければならない。
しかし、セッション値をモデルのプロパティにセットして、、、ではなくあたかもPostされてきたかのようにセッション値を$requestにマージしてやればよい。

$request->merge(
    $request->session()->get('member')
);

こうすることで、入力フォーム -> 登録完了ページの時と同じようにすればinsertできる。

$member = Member::create($request->all());

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です