我想返回到我的模态对话框编辑表单以显示验证错误,但使用Redirect::back
我只是在没有模态窗口的 HTML 页面上结束。
我使用BootstrapDialog 将我的attendee.edit
路线加载到一个弹出编辑表单的模式对话框中。
HTML
<td>{{link_to_route('attendee.edit','',array($attendee->id), array(
'class'=>'edit-attendee btn btn-info btn-xs glyphicon glyphicon-pencil',
'data-title' => 'Edit Attendee'))}}
</td>
对 BootstrapDialog 的 JQuery 调用
$(document).ready(function(){
$('.btn.edit-attendee').click(function(e){
e.preventDefault();
url = $(this).attr('href');
BootstrapDialog.show({
title: $(this).data('title'),
message: $('<div></div>').load(url),
buttons: [{
label: 'Update',
action: function(dialogRef) {
$('form').submit();
}
}]
});
});
});
控制器
public function update($id)
{
$attendee = Attendee::findOrFail($id);
$validator = Validator::make($data = Input::all(), Attendee::$rules);
if ($validator->fails())
{
return Redirect::back()->withErrors($validator)->withInput();
}
$attendee->update($data);
return Redirect::route('attendees.index');
}
编辑完表单后,我想返回模态窗口以显示验证错误,但我只是在没有对话框的 HTML 页面上结束。如何重定向回模态窗口?
更新
添加id
到控制器返回
return Redirect::back()->withErrors($validator)->withInput()->with('id', $id);
添加了jQuery
@if(!empty(Session::get('id')))
$(document).ready(function(){
url = "{{ URL('attendee') . '/' . Session::get('id'). '/edit' }}";
BootstrapDialog.show({
title: $(this).data('title'),
message: $('<div></div>').load(url),
buttons: [{
label: 'Update',
action: function(dialogRef) {
$('form').submit();
}
}]
});
});
@endif
如果出现错误,这将重新打开模态窗口,但如果没有则继续返回。我不喜欢它如何关闭和重新打开模态,并且验证错误不会传递给模态,所以我不建议这样做。