在Laravel中插入表单数据后如何重定向到另一个页面?

时间:2016-12-12 06:39:54

标签: php mysql laravel laravel-5.2

我有一个包含input字段的表单。现在我想要,如果有人submit这个form那么他会redirect到另一页我写的确认函我已经搜索过,但我无法找到正确答案。

我的控制器:

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['fathers_name'] = $request->input('fathers_name');
    $applicant['mothers_name'] = $request->input('mothers_name');
    $applicant['spouses_name'] = $request->input('spouses_name');
    $applicant['nationality'] = $request->input('nationality');
    $applicant['present_add'] = $request->input('present_add');

    $applicant->save();
    \Session::flash('flash_message','Application has been successfully submitted.');
    return redirect(route('confirmationMsg'));
}

我的路线:

Route::group(['prefix' => 'career'], function () {
    Route::get('apply', ['as' => 'addApplicant', 'uses' => 'ApplicantController@create']);
    Route::post('save', ['as' => 'saveApplicant', 'uses' => 'ApplicantController@store']);
    Route::get('submitted', ['as' => 'confirmationMsg', 'uses' => 'ApplicantController@store']);
});

我的代码出错:

  

中的QueryException   C:\ XAMPP \ htdocs中\告示栏\供应商\ laravel \框架的\ src \照亮\数据库\ Connection.php   第729行:SQLSTATE [23000]:完整性约束违规:1048列   'name'不能为null(SQL:插入applicantsnamesex,   marital_status

任何人都可以帮我解决问题或我是怎么做到的?提前谢谢。

4 个答案:

答案 0 :(得分:3)

试试这个:

return redirect('your_route');

Route::get('your_route', function () {
    // return view from here or make a function call from a controller
});

答案 1 :(得分:0)

试试这个: -

return redirect()->route('confirmationMsg');

答案 2 :(得分:0)

请尝试以下方法:

return Redirect::to(url);

答案 3 :(得分:0)

我可以看到有关redirect()route()用法的三个答案,但您的代码在这里是正确的。你甚至接受了其中一个答案(为什么?)。

错误说name(可能很少有其他)字段为空,因此您需要确保从表单传递这些字段。您可以在store()函数的开头使用此代码来检查这一点:

dd($request->all());

或者,您可以在迁移文件中将其中一个字段设置为nullable()

$table->string('name')->nullable();