Laravel

【Laravel】フォームの入力・選択内容を保持する方法【oldヘルパー】

Laravelの登録・更新フォーム画面でinputにテキスト入力やselectで選択を行い、入力・選択内容登録を行おうとした際にバリデーションチェックでエラーになると登録フォーム画面で入力・選択内容が未入力状態になります。その際、登録フォーム画面で入力・選択した値を保持した状態にする方法をご紹介します。

oldヘルパーを使った登録フォーム画面(viewファイル)

※登録フォーム画面(viewファイル)の項目に入力・選択後、バリデーションチェックが行われた場合に入力・選択した値を保持(valueに設定)します。

inputタグ

value属性に
old(‘name属性の設定名’)
を設定します。

<input type="text" name="address" value="{{ old('address') }}">

textareaタグ

※textareaの開始タグと終了タグの間に
old(‘name属性の設定名’)
を設定します。

<textarea name="bikou">{{ old('bikou') }}</textarea>

selectタグ

選択した(value)値がある場合、該当のoptionタグがselectedとなるように設定します。

<select name="sex">
<option value="">性別を選択</option>
<option value="man" @if( old('sex') === 'man' ) selected @endif>男</option>
<option value="woman" @if( old('sex') === 'woman' ) selected @endif>女</option>
</select>

oldヘルパーを使った更新フォーム画面(viewファイル)

※登録フォーム画面(viewファイル)とほぼ同じですが、更新フォーム画面(viewファイル)にてバリデーションチェックが行われる前のデフォルト値もvalueに設定します。

inputタグ

value属性に
old(‘name属性の設定名’,データベース(userテーブル)から取得した値)
を設定します。

<input type="text" name="address" value="{{ old('address', $user->address) }}">

textareaタグ

textareaの開始タグと終了タグの間に
old(‘name属性の設定名’,データベース(userテーブル)から取得した値)
を設定します。

<textarea name="naiyo">{{ old('bikou', $user->bikou) }}</textarea>

selectタグ

デフォルト(value)値または選択した(value)値がある場合、該当のoptionタグがselectedとなるように設定します。

<select name="sex">
<option value="">性別を選択</option>
<option value="man" @if( old('sex') === 'man' ) selected @endif>男</option>
<option value="woman" @if( old('sex') === 'woman' ) selected @endif>女</option>
</select>

<select name="sex">
<option value="">選択して下さい</option>
<option value="man" @if( old('sex', $user->sex) === 'man' ) selected @endif>男</option>
<option value="woman" @if( old('sex', $user->sex) === 'woman' ) selected @endif>女</option>
</select>

 
※Laravelのバージョン 6系 で確認した内容になります。
※流用される場合は自己責任でお願いします。

この記事の運営者(IT部長)からのお知らせ

PCトラブルは解決しましたか?

もし「会社のPCが全部遅い」「Office 365のエラーが多発する」「ネットワークが不安定」といった、調べても解決しない「会社全体」のお悩みがありましたら、ぜひご相談ください。

「Windows11 高速化」といったお悩み検索で毎月1,200人以上が訪れる、
このサイトの運営者
(建設会社IT部長)が、川崎・横浜・東京城南エリアの法人様限定で「無料ITお困りごと診断」を行っています。