Laravel select 旧值和新值 selected

Laravel select old and new value as selected

不确定如何问这个问题。但是从数据库中获取值后如何 select 旧值?当您单击编辑时,您将获取数据库结果。但是如果出现问题,我想要用户插入的值 selected。

如果你想增加一个值,这是有效的。

<select name="category_id" class="form-control" id="category">
    @foreach($category as $cat)
        <option value="{{$cat->id}}"
            {{ old('category_id', $cat->id) == $subCategory->category_id ? "selected" : "" }}>
            {{ $cat->category_en }} | {{ $cat->category_de }}</option>
    @endforeach
</select>

但是,当我按下更新时,它不使用旧的 selected 值,而是自动转到 foreach 中的第一个选项。

使用optional() helper along with the old() helper 来处理这种情况。

<option value="{{ $cat->id }}" @if (old('category_id', optional($subCategory)->category_id) == $cat->id) selected @endif>{{ $cat->category_en }} | {{ $cat->category_de }}</option>

这意味着当它获得旧输入值 null 时,它将使用对象值 select 一个项目。当有旧输入值时,它将 select 旧输入值。你可以省略可选的助手,当你使用相同的表单进行创建和更新时它很有用。

<select name="category_id" class="form-control" id="category">
     @foreach($category as $cat)
     <option value="{{$cat->id}}" 
  @if($cat->id == $subCategory->category_id) ? selected : '' @endif>
   {{ $cat->category_en }} | {{ $cat->category_de }}</option>
     @endforeach
     </select>