如何在Laravel的选项字段中显示旧值?

问题描述 投票:2回答:1

我想在编辑时在此选择字段中显示旧的选择值。如何在这些字段中显示我的旧值?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'));
}
laravel updates edit
1个回答
0
投票

您可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.