検索画面など、自画面遷移時にセレクトボックスの選択値を保持させる方法です。
やりたいこと
自画面遷移時にセレクトボックスの選択値を保持させる
- 処理実行→自画面遷移時
- バリデーションエラー時
の2パターンに対応させる
環境
- PHP:バージョン7.3.7
- Laravel:バージョン5.8
- OS:Windows10
書き方
typesテーブルから取り出した値(ID、NAME)をもとにセレクトボックスを作成する場合の記述は以下の通り。
<select name = "type_id">
<option value = "" selected>選択してください</option>
@foreach($types as $type)
@if((!empty($request->type_id) && $request->type_id == $type->ID) || old('type_id') == $online_type->ID )
<option value = "{{ $type->ID }}" selected>{{ $type->NAME }}</option>
@else
<option value = "{{ $type->ID }}">{{ $type->NAME }}</option>
@endif
@endforeach
</select>
処理実行→自画面遷移に対応しているのが、
!empty($request->type_id) && $request->type_id == $type->ID
バリデーションエラーに対応しているのが、
old('type_id') == $online_type->ID
となっています。