Laravel 5 中的多阶段形式

Multi-stage form in Laravel 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 -> 验证输入,然后保存到数据库 return view('stagesComplete')

问题
一切正常,除非在第 2 阶段出现验证错误。页面已提交,但它在 stage1.

上显示错误消息

我确保 stage1 从 POST 到 /stage1/stage2 也是如此(POST 到 /stage2).

我试过@validateWelcome重定向/stage2,但是你当然不能用重定向POST。

我是不是遗漏了什么,还是根本不可能?

通常,您应该创建:

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

当POSTstep1没问题的时候,你可以往session中添加数据然后重定向到step2,当你运行POSTstep2数据无效的时候就没有问题了因为您将执行 GET step2 操作