質問: Laravelで簡単な投稿画面を作っています。 「投稿内容作成画面」 →「投稿内容確認画面」 →「完了」 という流れになっています。 そこで「「投稿内容確認画面」においてブラウザの戻るボタンを押されたときの対策に困っています。 ブラウザの戻るボタンを押下された際はそれまでの投稿内容を保持しておきたいのでinput textなどには値を保持しておきたいのですが、保持できていません。 ``` old('text') ``` では保持できておらず、バリデーションエラーの際は保持できていることから、ブラウザのキャッシュから読み込んでいるためかと思って。 Controllerで ``` Response::view('hoge.foo') ->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0') ->header('Expires','Thu, 01 Jan 1970 00:00:00 GMT') ->header('Last-Modified', gmdate( 'D, d M Y H:i:s' ) . ' GMT') ->header('Pragma', 'no-cache'); ``` や ``` ``` などを試したのですがだめでした。 Chromeだとinputtextは保持されるのですが、それ以外にも保持する情報があり、足りていません。 レスポンスヘッダ−をみてもno-cacheにはなっているのですが・・・ 対策ありましたら教えて欲しいです。 よろしくお願いします。
回答: old()で取得できるのはセッションにフラッシュされた入力値です $request->flash()は、入力値をセッションへ保管します ですので、 ``` $request->flash(); ``` を実行すればold()を使って取得できるようになります validationエラー時はwithInput()しているのではないでしょうか。 なお、サーバー側のセッションデータなのでブラウザのキャッシュは関係ありません