{{ old('my_field') }}
可以检索字段的原始值。但就我而言,这还不够。我正在使用动态添加的字段。意思是,我不能确定字段my_collection.5.my_field
是否存在。要获取错误消息和错误格式,我需要遍历所有动态添加的fieldset
:
@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模板中的输入字段?
答案 0 :(得分:0)
解决方案(在这种情况下就足够了)是old(...)
helper。它提供对所有输入级别(“ root”除外,表示输入集本身)的访问。因此,针对该问题的功能可以实现如下:
@if (old('actions'))
@foreach(old('actions') as $key => $action)
...
@endforeach
@endif
不过,很高兴知道为什么request()->input('my_collection')
和Input::get('my_collection')
不起作用以及如何访问输入集本身(例如,以便对其进行迭代)。
更新
可以使用old()
来访问完整的输入集,而无需使用参数。