【Laravel】フォームのバリデーションエラー時に入力された値を保持する
バリデーションエラー時に入力された値を保持する
グローバルに定義されており、どこからでも呼び出せるold
ヘルパをinput要素のvalueに設定します。
バリデーションを行っていないときは何も表示されず、エラーが発生したときのみ値を表示することができます。
参考:
old関数はセッションにフラッシュデーターとして保存されている直前の入力値を取得します。
hoge.blade.php
// テキストの内容を保持(type="date"なども同様)
<input type="text" name="freeWord" value="{{ old('freeWord') }}">
// チェックされたチェックボックスを保持
<input type="checkbox" name="checkBox" value="0" {{ old('checkBox') == '0' ? 'checked' : '' }}>
<input type="checkbox" name="checkBox" value="1" {{ old('checkBox') == '1' ? 'checked' : '' }}>
<input type="checkbox" name="checkBox" value="2" {{ old('checkBox') == '2' ? 'checked' : '' }}>
// チェックされたラジオボタンを保持
<input type="radio" name="radioButton" value="0" {{ old('radioButton') == '0' ? 'checked' : '' }}>
<input type="radio" name="radioButton" value="1" {{ old('radioButton') == '1' ? 'checked' : '' }}>
<input type="radio" name="radioButton" value="2" {{ old('radioButton') == '2' ? 'checked' : '' }}>
バリデーション成功時にも入力された値を保持する
バリデーションに成功後に遷移する画面が同じ画面であれば、その場合も値を保持する必要があります(画面に埋め込まれた検索フォームで検索後に同じ画面に戻ってくる場合など)。
old
ヘルパは第二引数にデフォルトで表示する値を設定できるので、コントローラから受け取った検索条件を第二引数に設定してあげれば、バリデーションの成功時にも値を保持することができます。
hogeController.php
public function index(Request $request)
{
// バリデーション処理など...
// リクエストから検索条件を取得する
$searchConditions['freeWord'] = $request->input('freeWord');
$searchConditions['checkBox'] = $request->input('checkBox');
$searchConditions['radioButton'] = $request->input('radioButton');
// 実際の検索処理など...
// 再度inputに表示するため、検索条件をコントローラからビューに渡してあげる
return view('hoge', ['searchConditions' => $searchConditions,]);
}
hoge.blade.php
// 第二引数($searchConditions)に値が設定されており、エラーが発生していない場合、第二引数の値が表示される
<input type="text" name="freeWord" value="{{ old('freeWord', $searchConditions['freeWord'])) }}">
<input type="checkbox" name="checkBox" value="0" {{ old('checkBox', $searchConditions['checkBox']) == '0' ? 'checked' : '' }}>
<input type="checkbox" name="checkBox" value="1" {{ old('checkBox', $searchConditions['checkBox']) == '1' ? 'checked' : '' }}>
<input type="checkbox" name="checkBox" value="2" {{ old('checkBox', $searchConditions['checkBox']) == '2' ? 'checked' : '' }}>
<input type="radio" name="radioButton" value="0" {{ old('radioButton', $searchConditions['radioButton']) == '0' ? 'checked' : '' }}>
<input type="radio" name="radioButton" value="1" {{ old('radioButton', $searchConditions['radioButton']) == '1' ? 'checked' : '' }}>
<input type="radio" name="radioButton" value="2" {{ old('radioButton', $searchConditions['radioButton']) == '2' ? 'checked' : '' }}>
Author And Source
この問題について(【Laravel】フォームのバリデーションエラー時に入力された値を保持する), 我々は、より多くの情報をここで見つけました https://qiita.com/kondo0602/items/62004b9db8743d96de73著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .