質問: phpとlaravelでフォームを実装しています。 ~~~~~a.php~~~~~ ・・・以下略 フォームは上記のように実装しています。 テキストに値を入力し、F5を押下してリロードをすると入力した値がテキストに残っています。 テキストに値を入力し、送信して入力エラーを発生させます。発生した場合は入力画面に戻ります。 戻る処理は以下のようにコントローラ内で実装しています。 return redirect()->back()->withErrors($messages)->withInput(); 入力エラーが発生し、入力画面に戻った後にF5を押下してリロードをすると入力した値が消えてしまいます。 入力エラーが発生した場合も入力した値をテキストに残したいのですが、どうすればよいでしょうか。 もし、残すのが難しい場合は、残さないようにする等、統一したいと思います。 追加です。 IEとchromeでは全て残りませんでした。 上記のように残ったり残らなかったりするのはfirefoxのみでした。
回答: 直前の入力データを取得するには`Illuminate\Http\Request`の`old`メソッドが利用できます。 bladeを利用しているなら ``` ``` とすればtextの直前の入力がvalueにセットできます。ヘルパーメソッドも用意されているので ``` ``` としてもOKです。 oldの第二引数はデフォルト値を指定できるので、 ``` ``` とすれば直前の入力データがないときに`$defaultText`の内容がvalueにセットされます。