我正在使用Laravel 5.5,并且知道withInput()及其用法。
我已经在页面上成功实现了此功能,但是在页面上使用了同一表格的多个版本。这意味着当我的验证失败时,它将返回输入并用相同的数据填写页面上的所有表格!
是否可以使用withInput()定位特定表单?
if ($validation->fails()) {
return redirect(Route('ROUTENAME', ['id' => $request->id]))
->withErrors($validation)
->withInput($request->all())
->send();
}
表单实例一:
{{ Form::open(['route' => ['ROUTENAME', $data->id]]) }}
@component('forms.formname')
@slot('title', 'Add')
@slot('colour', 'info')
@slot('footer')
<div class="col-md-5 col-sm-5">{{ Form::submit(__('btn.submit'), ['class' => 'btn btn-primary']) }}</div>
</div>
@endslot
@endcomponent
{{ Form::close() }}
表单实例二:
{{ Form::open() }}
{{ Form::model($data1) }}
@section('title', 'summary')
@component('forms.formname')
@slot('colour', 'success')
@slot('title')
@lang('title.name') #{{ $data1->id }}
@endslot
@slot('footer')
<div class="col-md-5 col-sm-5">
<a href="" class="btn btn-primary"><span
class="glyphicon glyphicon-pencil"></span> @lang('btn.Update')</a>
<a href="{{ Route('ROUTENAME', ['id' => $data1->id]) }}"
class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span>
@lang('btn.Remove')</a>
</div>
@endslot
@endcomponent
{{ Form::close() }}
任何建议将不胜感激。我特别希望使用输入数据来定位表单实例一。
编辑1
根据评论中的建议,我实现了这一点:
if ($validation->fails()) {
return redirect(Route('ROUTENAME', ['id' => $request->id]))
->withErrors($validation)
->with(['failed' => $request->all()])
->send();
}
并在表单实例一的视图中:
@if(isset($failed))
{{ Form::model($failed) }}
@endif
这在提交时没有区别,并且在失败时使用相同的数据填充所有表单。