入力フォームからsubmitで完了ページは値の保持が必要なく実装はとても楽である。
しかし、確認ページを挟む場合は値を保持しておく必要がある。
sessionに値を出し入れするController部分のメモ。
■入力フォーム
確認ページの「戻る」ボタンのURLパラメータに”back”を付けておき判断出来るようにしておく。
“back”があれば、sessionから入力値を取り出す。
// 入力フォーム
public function input(Request $request)
{
// 確認画面から戻ってきた時は値を復元
if($request->has('back')) return $input = $request->session()->get('input');
else return $input = array();
return view('user.entry.input',
compact(
'input',
)
);
}
■確認ページ
public function confirm(Request $request)
{
// submitされた変数を全て取り出す
$input = $request->all();
// 取り出した変数を"input"という名前でセッションに保存ける
$request->session()->put("input", $input);
return view('user.entry.confirm',
compact(
// viewにも渡す
'input',
)
);
}
■完了ページ
public function complete(Request $request)
{
// 入力された値をセッションから取り出す
$input = $request->session()->get("input");
// 完了処理を行う
・
・
・
return view('user.entry.complete');
}