我正在使用Laravel 5构建一系列必须按顺序填写的表单(或步骤(。我想确保用户在每次页面加载时总是被引导到正确的"步骤"。
示例#1
我有一份工作申请,分为5个部分,每个部分部分是它自己的页面/表单。用户来到我的网站并填写注销第1页和第2页,但随后注销。那周晚些时候他们回来了并登录。我希望它们自动定向到应用
我的计划是将状态(它们属于哪个页面(存储在数据库中,然后在决定将用户路由到哪里时引用它。我只是不确定实现这一点的"Laravel方式"是什么。我应该把这个检查放在哪里,以确保用户属于页面?
示例#2
相同的5页求职申请,用户填写了第1页和第2页。我们使用非常基本的URI,用户假设目前在
site.com/formpage/2
上,他可能会去site.com/formpage/4
跳过。当用户这样做时,网站识别用户"属于"第3页,并将其路由到那里。
假设您将有一条用于该场景的路线,例如
/form/1
/form/2
/form/3
基本上是/form/{step}
。
因此,负责此请求的控制器应该是验证用户是否正确的控制器。如果您正在保存状态(用户应该重定向到的步骤(,您可以比较请求中的$step
变量是否与您存储的变量匹配。如果没有,只需重定向到合适的。
伪代码:
public function foo($step)
{
// get the step stored in the database, I'll just hard-code it
$stepFromDatabase = 3;
if ($stepFromDatabase != $step) {
return redirect("/form/{$stepFromDatabase}");
}
// otherwise step is okay, so just display the form
return view('bar');
}
希望能有所帮助。