Laravel 5中的多阶段形式

时间:2017-11-14 17:45:28

标签: php laravel laravel-5 laravel-5.5

我想在Laravel 5.5中构建一个简单的多阶段注册过程,而不必使用JavaScript,但我不确定它是否可行。

我的路线很简单:

Route::get('/stage1', 'UserController@showWelcome')->name('welcome');
Route::post('/stage1', 'UserController@validateWelcome');

Route::get('/stage2', 'UserController@create')->name('register');
Route::post('/stage2', 'UserController@store');

UserController ...

@showWelcome - > return view('stage1')
@validateWelcome - >然后验证输入return view('stage2', compact('request'))

@create - > return view('stage2')
@store - >验证输入,然后保存到DB return view('stagesComplete')

问题
除非在第2阶段出现验证错误,否则一切都会正常运行。页面已提交,但会在stage1上显示错误消息。

我已确保stage1表单发送到/stage1,而/stage2表示发送到/stage2

我已尝试重定向到/stage2 @validateWelcome,但当然您无法通过重定向进行发布。

我错过了什么,或者只是不可能?

1 个答案:

答案 0 :(得分:1)

通常,您应该创建:

GET step1 - show form
POST step1 - validate and redirect to step2 
GET step2 - show form
POST step2 - validate and save data in database/whatever

当POST step1正常时,您可以向会话添加数据并重定向到step2,当您运行POST step2并且数据无效时,由于您将获得GET step2操作,因此不会有任何问题