はじめに
Laravel 初学者の私が学習した内容をアウトプットしていく記事になります。
冗長している点や軽い書き方などあれば御指南お願いいたします。。。
Laravel radio ボタンを保持させる
前提:boolean カラムのデータを Radio ボタンで切り替えを実装する。
実際のコード
edit.php
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="radio" name="is_published" value="1" {{ (bool)old('is_published',$portfolio->is_published) ? 'checked' : ''}}>
<label class="form-check-label" for="flexRadioDefault1">公開</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="is_published" value="0" {{ (bool)old('is_published',$portfolio->is_published) ? '' : 'checked'}}>
<label class="form-check-label" for="flexRadioDefault2">下書き</label>
</div>
</div>
コードの概要
-
Bootstrap Radiosを引用しています。
validation がかかった際の以前の入力した値をold method
が保持してくれます。
old() の前に (bool) をつける事で boolean カラムを キャストしています。
そして、一番の肝が 三項演算子 です。
{{ ( 条件 ) ? 'ture の挙動' : 'false の挙動' }}になります。
Radio ボタンの場合、ボタンにチェックがつく動きを input タグ内のchecked
が行っています。
上の form-check 内での三項演算子は、true の際に挙動し、下の form-check 内での三項演算子は、false の際に挙動します。
書き方や class の中の役割など理解していれば吸収が早いと思います。