簡體   English   中英

如何在Laravel中提交表單后重定向確認頁面?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM