我将两个文件放到了web.php中,以便它们共享相同的Web中间件。但是会话不会存储
我正在创建一个SMS OTP系统。在API \ SmsController @ create函数中运行
$rand = rand(100000,999900);
session()->put('otp_test', $rand);
session()->keep(['otp_test']);
在请求API之后,我可以从SESSION选项卡的Laravel Debugger中看到具有会话变量。
但是,当我刷新页面时,SESSION变量不存在。它只会离开
_token Zv3IpiLwwIXTUMc4tMW1J9eJA5lJCliGtdwEvx0e
_previous array:1 [ "url" => "http://sms.test/register" ]
_flash array:2 [ "old" => [] "new" => [] ]
url array:1 [ "intended" => "http://sms.test" ]
PHPDEBUGBAR_STACK_DATA
同样,当我执行Form Post时,session('otp_test')
也为NULL。
当我刷新或转到下一页时,我尝试过的文件,session.php中的数据库都不会持续存在。 毕竟好像快闪了。
答案 0 :(得分:1)
withRouter
方法用于刷新会话数据。闪烁的会话变量最终将被删除。您只是将常规会话变量(在删除该变量之前一直存在,会话被刷新或死掉)变成了一个闪烁的变量,可以通过这样调用keep
来自动将其删除。