Laravel におけるデフォルト値について
解決したいこと
ラジオボタンのデフォルト値を設定したい
例)
LaravelでWebアプリをつくっています。
機能の修正中にエラーが発生しました。
解決方法を教えて下さい。
発生している問題・エラー
現在はデフォルト値が無制限となっているが、基本は無制限にしたくないので
「設定する」の回数は空白にしたい
該当するソースコード
<th>利用上限</th>
<td>
@php
$default_use_limit = isset($ticket->use_limit) ? old('use_limit', $ticket->use_limit) :
old('use_limit');
$is_active_use_limit = $default_use_limit || old("use_limit_toggle");
@endphp
<label class="mr-3">
<input type="radio" value="0" name="use_limit_toggle" class="form_toggle_radio" {{
!$is_active_use_limit ? "checked" : "" }}>
<span>無制限</span>
</label>
<label>
<input type="radio" value="1" name="use_limit_toggle" class="form_toggle_radio" {{
$is_active_use_limit ? "checked" : "" }}>
<span>設定する</span>
</label>
<div class="input_container mt-3">
<input type="number" name="use_limit" value="{{ $default_use_limit }}">
<span class="pl-2">回</span>
</div>
@error('use_limit')
<p class="error_text">{{ $message }}</p>
@enderror
</td>
自分で試したこと
$default_use_limit = old('use_limit', $ticket->use_limit ?? ' ');
と修正したところ、新規作成のデフォルト値は確かに期待通りになったが、既存のチケットを編集する際も全て、「設定する」の回数は空白になってしまうので、こちらは既存の値を表示するようにしたいです。
なお、新規作成画面と編集画面はどちらも_form.blade.phpを利用しており、無制限の場合はnull、設定するの場合はその整数がデータに反映されるようになっています。
0