我想在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
,但当然您无法通过重定向进行发布。
我错过了什么,或者只是不可能?
答案 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操作,因此不会有任何问题