[英]How to redirect confirmation page after submitting form in Laravel?
我有一个form
。这个动作是:
<form action="{{url('career/save/{id}')}}" method="POST" enctype="multipart/form-data">
路线:
Route::group(['prefix' => 'career'], function () {
Route::get('apply', ['as' => 'addApplicant', 'uses' => 'ApplicantController@create']);
Route::post('save', ['as' => 'saveApplicant', 'uses' => 'ApplicantController@store']);
Route::get('confirmation/{id}', ['as' => 'confirmationMsg', 'uses' => 'ApplicantController@show']);
});
控制器:
public function store(Request $request)
{
$applicant = new Applicant();
$applicant['name'] = $request->input('name');
$applicant['sex'] = $request->input('sex');
$applicant['marital_status'] = $request->input('marital_status');
$applicant['date_of_birth'] = $request->input('date_of_birth');
$applicant['email'] = $request->input('email');
$applicant->save();
\Session::flash('flash_message','Application has been successfully submitted.');
return redirect(route('confirmationMsg'));
}
public function show($id)
{
$applicantData = Applicant::whereId($id)->first();
return view('applicant.confirmation',compact("applicantData"));
}
如果每个申请人/每个人都提交此表单,那么它将创建一个ID并在确认页面中将其重定向到他提交的数据。
但提交后我得到了:
../public/career/save/%7Bid%7D
我可以手动输入../public/career/confirmation/14
和它的工作完美。现在我想要提交表格后,它会重定向这个../public/career/confirmation/ID
。 ID是动态的。我怎么能这样做? 提前致谢。
你可以通过这样做在提交后重定向
return redirect()->to('career/confirmation/'.$id); //pass your dynamic id
或通过这样做
return redirect()->route('confirmationMsg',['id'=>$id]); //pass your dynamic id
这样做, $id = $applicant->id;
替换你的这条线
return redirect(route('confirmationMsg'));
用这个
return redirect()->route('confirmationMsg',['id'=>$id]); //pass your dynamic id
提供您用于表单操作的职位路线,即career/save/{id}
。 你可以看到其他修正。
$applicant->save();
action, $applicant->id
应该是最后插入的申请人ID,所以在redirect()
使用它。
我们进一步翻译%7Bid%7D
,它是{id}
。 意味着id
在这里起作用。
试试以下代码:
public function store(Request $request)
{
$applicant = new Applicant();
$applicant['name'] = $request->input('name');
$applicant['sex'] = $request->input('sex');
$applicant['marital_status'] = $request->input('marital_status');
$applicant['date_of_birth'] = $request->input('date_of_birth');
$applicant['email'] = $request->input('email');
$applicant->save();
//Get last inserted applicant id...
$applicantId = $applicant->id;//Check your correspond table for primary key column label is 'id'.
\Session::flash('flash_message','Application has been successfully submitted.');
return redirect(route('confirmationMsg', [id => $applicantId]))
}
这应该对你有用......!
在$applicant->save();
,获取id $id = $applicant->id;
然后重定向, return redirect(route('confirmationMsg', [id => $id]));
重定向到特定路径:
return redirect('/routepath');
重定向到当前路径:
return redirect()->back();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.