我试图将会话存储在数据库中而不是文件中。 所以在我的.env文件中:-
SESSION_DRIVER =数据库
& 在我的config / session.php中:-
'驱动程序'=> env('SESSION_DRIVER','数据库'),'表'=>'会话',
所以现在做完之后:
$ request-> session()-> flush()
要在我的控制器中删除会话,会话值仍存储在我的数据库中。尽管在控制器中刷新会话后,我已经检查了会话密钥是否存在,或者它显示会话的位置不存在,但是为什么未从数据库中删除会话?也在我的数据库表 sessions < / em> 用户ID 显示 NULL 。 为什么?
我以前曾经将会话存储在文件中。现在,我正在尝试将会话存储在数据库中。谁能帮我。
答案 0 :(得分:1)
仅在调用 会话垃圾收集器 之后,数据库中的旧会话行才会被删除,具体功能为gc()
。
此函数有可能在每个请求上被调用,您可以使用session.lottery
配置值来控制其运行的机会。
但是请不要担心,即使会话行仍然存在于数据库中,但注销后它们会失效(user_id
为空),只有上面的gc()
函数才会删除。
Session::flush()
和Session::regenerate(true)
都不会删除旧的会话行。