【发布时间】:2018-03-23 23:31:22
【问题描述】:
我正在使用 Laravel 5.5 并尝试实现以下场景:
用户尝试使用POST 提交表单,但如果未登录,我会显示登录屏幕。
我的问题是登录后我使用return redirect()->intended('dashboard'); 继续我中断的用户流程。但是重定向会将请求转到GET。
在面对登录屏幕之前,有什么合理的方法可以存储我初始表单中的数据,以便在登录后被重定向后恢复它?
【问题讨论】:
-
为什么不把帖子数据放到会话中呢?粗略的非 laravel 例子
$_SESSION['posted']=$_POST; -
问题在于何时将其放入会话中。我发布数据的控制器要求用户登录,所以一旦我到达保存数据的地方,它就已经丢失了。
-
在显示表单之前检查以确保用户已登录。重定向回表单不应改变表单处理其表单提交的方式。
-
@Joseph_J,感谢您的建议。这完全有道理。我的问题是这个表单是根页面的一部分,它对我的用户来说不是很有用。
-
把数据保存在浏览器的LocalStorage中怎么样?然后当用户返回时,如果数据存在于 LocalStorage 中,则使用这些值填充表单字段。