2016-12-15 6 views
1

У меня есть действие form .Это:Как перенаправить страницу подтверждения после отправки формы в Laravel?

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

Маршрут:

Route::group(['prefix' => 'career'], function() { 
    Route::get('apply', ['as' => 'addApplicant', 'uses' => '[email protected]']); 
    Route::post('save', ['as' => 'saveApplicant', 'uses' => '[email protected]']); 
    Route::get('confirmation/{id}', ['as' => 'confirmationMsg', 'uses' => '[email protected]']); 
}); 

Контроллер:

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")); 
} 

Если каждый заявитель/все представить эту форму, то это создаст идентификатор и перенаправит его в подтверждение n с предоставленными данными.

Но после того, как я представил есть:

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

можно ввести вручную ../public/career/confirmation/14 и его работу perfectly.Now я хочу после того, как отправляя форму, он перенаправит это ../public/career/confirmation/ID. ID является динамическим. Как я могу это сделать? Заранее спасибо.

+0

Вы можете разместить свою функцию 'store', где находится фактическое место перенаправления. И даже попробуйте' {{url ('career/save /'. Id}} 'в форме action –

+0

@NishanthMatha Вопрос обновлен ... –

+0

Это сообщение об ошибке «Использование неопределенного константы id - предполагаемое« id » –

ответ

1

вы можете перенаправить после представления, делая это

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

+0

Я получаю« синтаксическую ошибку, неожиданную »-> '(T_OBJECT_OPERATOR) 'эта ошибка для вашего решения. –

+0

Я обновил свой ответ, посмотрю – Qazi

+0

Теперь он переходит на' ../ public/карьера/сохранить'. Но если я добавлю '$ id = $ patent-> id;' после '$ reserve-> save();' тогда его работа. –

0

после $applicant->save();, получить идентификатор $id = $applicant->id; затем перенаправлять, return redirect(route('confirmationMsg', [id => $id]));

+0

Его путь к пути '../ public/career/save' на вашем пути. –

+0

Но в соответствии с вашим определением маршрута 'confirmMsg' должен вернуться на желаемую страницу –

0

Чтобы перенаправить целевую страницу, где вы хотите пойти после того, как действие/(если это правда):
return redirect('/routepath');

(если false), и если вы хотите вернуться к странице действий, чем вы c использование:
return redirect()->back();

1

Укажите свой почтовый маршрут, который вы используете для формы действия, т.е. career/save/{id}. Вы можете увидеть другую коррекцию.

После $applicant->save(); действие, $applicant->id должно быть последним вставленным идентификатором заявителя, поэтому используйте его в то время как redirect().

Далее мы переводим %7Bid%7D, это {id}. Значит, что причина здесь id.

Try ниже код:

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])) 
} 

Это должно работать для вас ...!