在 Laravel 中提交表单后如何重定向确认页面?

Cho*_*mud 5 php forms laravel laravel-5

我有一个form。这个动作是:

<form action="{{url('career/save/{id}')}}" method="POST" enctype="multipart/form-data">
Run Code Online (Sandbox Code Playgroud)

路线:

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']);
});
Run Code Online (Sandbox Code Playgroud)

控制器:

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"));
}
Run Code Online (Sandbox Code Playgroud)

如果每个申请人/每个人都提交此表格,那么它将创建一个 ID 并使用其提交的数据在确认页面中重定向该 ID。

但提交后我得到了:

../public/career/save/%7Bid%7D

我可以手动输入../public/career/confirmation/14并且其工作完美。现在我想在提交表单后它将重定向此../public/career/confirmation/IDID是动态的。我该怎么做?提前致谢。

Qaz*_*azi 6

提交后您可以redirect()立即通过以下方式:

return redirect()->to('career/confirmation/'.$id); //pass your dynamic id

或者

return redirect()->route('confirmationMsg',['id'=>$id]); //pass your dynamic id

在你的save()方法之后,添加这一行

$id = $applicant->id;

并替换

return redirect(route('confirmationMsg'));

return redirect()->route('confirmationMsg',['id'=>$id]); //pass your dynamic id