我想在编辑时在此选择字段中显示旧的选择值。如何在这些字段中显示我的旧值?https://github.com/shakibzaman/book-library-laravel您可以显示我的GitHub存储库-
这是我的规则编辑页面:
<div class="form-group {{ $errors->has('name') ? 'has-error' : '' }}">
<label for="chap_id">{{ trans('cruds.chapters.title_singular') }}*</label>
<select name="chap_id" id="chap_id" class="form-control select2">
@foreach($chapters as $id => $chapter)
<option value="{{ $id }}">{{ $chapter }}</option>
@endforeach
</select>
@if($errors->has('name'))
<em class="invalid-feedback">
{{ $errors->first('name') }}
</em>
@endif
<p class="helper-block">
{{ trans('cruds.permission.fields.title_helper') }}
</p>
</div>
editController
public function edit($id)
{
if (!Gate::allows('users_manage')) {
return abort(401);
}
$rule = Rule::find($id);
$chapters = Chapter::all()->pluck('name', 'id')->prepend(trans('global.pleaseSelect'), '');
return view('admin.rules.edit', compact('rule', 'chapters'));
}
您可以使用old()
函数来获取字段的旧值。此功能需要一个输入,即字段的名称:old('chap_id')
。
您可以使用这个:
@foreach($chapters as $id => $chapter)
@if(null !== old('chap_id') && old('chap_id') === $id)
<option value="{{ $id }}" selected>{{ $chapter }}</option>
@else
<option value="{{ $id }}">{{ $chapter }}</option>
@endif
@endforeach
或更短的一个:
@foreach($chapters as $id => $chapter)
<option value="{{ $id }}" {{ old('chap_id') === $id ? 'selected' : '' }}>{{ $chapter }}</option>
@endforeach