Как получить оригинальный ввод в шаблоне лезвия в Laravel 5.7? - PullRequest
0 голосов
/ 15 декабря 2018

Исходное значение поля можно получить с помощью {{ old('my_field') }}.Но в моем случае этого недостаточно.Я работаю с динамически добавленными полями.Значит, я не могу быть уверен, что поле my_collection.5.my_field существует.Чтобы получить сообщения об ошибках и форматирование ошибок, мне нужно перебрать все динамически добавленные fieldset s:

@if (request()->input('collection'))
    @foreach(request()->input('collection') as $key => $item)
    <label class="label" for="collection.{{ $key }}.my_field">my field</label>
    <textarea
        type="text"
        id="collection.{{ $key }}.my_field"
        name="collection[{{ $key }}][my_field]"
        class="textarea {{ $errors->has('collection.' . $key . '.my_field') ? 'is-danger' : '' }}">
        {{ old('collection.' . $key . '.my_field') }}
    </textarea>
    @endforeach
@endif

Но request()->input('my_collection') и Input::get('my_collection') возвращают null.Он также не работает для простых полей (Input::get('my_simple_field') и Input::get('my_simple_field')).

Как получить доступ к полям ввода в шаблоне Blade?

1 Ответ

0 голосов
/ 15 декабря 2018

Решением (которого достаточно в этом случае) является old(...) помощник .Он обеспечивает доступ ко всем уровням входа (за исключением «корня», означает сам набор ввода) .Таким образом, функциональность, нацеленная на вопрос, может быть реализована следующим образом:

@if (old('actions'))
    @foreach(old('actions') as $key => $action)
        ...
    @endforeach
@endif

Тем не менее, было бы неплохо узнать, почему request()->input('my_collection') и Input::get('my_collection') не работают и как получить доступ к самому входному набору.(например, чтобы перебрать его).


ОБНОВЛЕНИЕ

Полный набор входных данных может быть доступен с помощью old() без аргументов.

...