Laravel 6会话不会在web.php中持续存在

时间:2019-11-18 13:18:13

标签: laravel laravel-session

我将两个文件放到了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

enter image description here 同样,当我执行Form Post时,session('otp_test')也为NULL。

刷新页面后。那里有opt_test个会话。 enter image description here

当我刷新或转到下一页时,我尝试过的文件,session.php中的数据库都不会持续存在。 毕竟好像快闪了。

1 个答案:

答案 0 :(得分:1)

withRouter方法用于刷新会话数据。闪烁的会话变量最终将被删除。您只是将常规会话变量(在删除该变量之前一直存在,会话被刷新或死掉)变成了一个闪烁的变量,可以通过这样调用keep来自动将其删除。

Laravel 6.x Docs - Sessions - Flash Data