Как я могу показать старое значение в полях опций в Laravel? - PullRequest
2 голосов
/ 14 января 2020

Я хочу показать старое значение выбора в этом поле выбора, когда я хочу редактировать. Как я могу показать свое старое значение в этих полях? 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'));
}

1 Ответ

0 голосов
/ 14 января 2020

Вы можете использовать функцию 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
...