【Laravel】ラジオボタングループのデフォルト値をDBからの値に反映する

Laravel,PHP

こんな感じのラジオボタングループをフォーム内に作って、編集画面からこのラジオボタンを表示させるときに、DBからの値をデフォルト値として適用する方法です

Laravel(Blade)

<div class="btn-group" role="group">
    {{ Form::radio('sex', 1, old('sex', isset($person) ? $person['sex'] : '') == 1 ? true : false, ['id' => 'sex-male']) }}
    {{ Form::label('sex-male', '男') }}
 
    {{ Form::radio('sex', 0, old('sex', isset($person) ? $person['sex'] : '') == 0 ? true : false, ['id' => 'sex-female']) }}
    {{ Form::label('sex-female', '女') }}
</div>

Form::radioの解説

  • 第1引数「’sex’」:name
  • 第2引数「1」:value
  • 第3引数「old('sex’〜」:デフォルト値(trueにするとchecked="checked"がつく)

HTML出力

<div class="btn-group" role="group">
    <input id="sex-male" name="sex" type="radio" value="1">
    <label for="sex-male">男</label>

    <input id="sex-female" checked="checked" name="sex" type="radio" value="0">
    <label for="sex-female">女</label>
</div>