Laravel 5.7 如何在 Blade 模板中获取原始输入?
How to Get Original Input in Blade Template in Laravel 5.7?
可以通过{{ 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')
returnnull
。它也不适用于简单字段(Input::get('my_simple_field')
和 Input::get('my_simple_field')
)。
如何访问 Blade 模板中的输入字段?
解决方案(在这种情况下就足够了)是 old(...)
helper。它提供对输入的所有级别的访问 (除了 "root",表示输入集本身)。所以题中的功能可以实现如下:
@if (old('actions'))
@foreach(old('actions') as $key => $action)
...
@endforeach
@endif
不过,如果知道为什么 request()->input('my_collection')
和 Input::get('my_collection')
不起作用,以及如何访问输入集本身(例如,为了迭代它),那就太好了。
更新
可以使用 old()
不带参数访问完整的输入集。
可以通过{{ 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')
returnnull
。它也不适用于简单字段(Input::get('my_simple_field')
和 Input::get('my_simple_field')
)。
如何访问 Blade 模板中的输入字段?
解决方案(在这种情况下就足够了)是 old(...)
helper。它提供对输入的所有级别的访问 (除了 "root",表示输入集本身)。所以题中的功能可以实现如下:
@if (old('actions'))
@foreach(old('actions') as $key => $action)
...
@endforeach
@endif
不过,如果知道为什么 request()->input('my_collection')
和 Input::get('my_collection')
不起作用,以及如何访问输入集本身(例如,为了迭代它),那就太好了。
更新
可以使用 old()
不带参数访问完整的输入集。