gpt4 book ai didi

php - Laravel - session 不与数据库驱动程序保持一致

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:18 24 4
gpt4 key购买 nike

我正在使用 Laravel 5.1,并且直到现在我一直在使用默认文件驱动程序在我的项目中存储 session 。

现在出于某些原因,我决定切换到数据库驱动程序,因此,根据 official documentation ,我在 config/session.php 中更改了以下行

'driver' => 'database'

我在我的数据库中创建了 session 表,现在当我开始浏览我的网站时,我可以在新表中看到一些数据:

The screenshot of my sessions table

但我现在无法从 session 中获取任何数据!这些是我要执行的步骤:

我将我的数据存储到 session 中:

session( [ 'mykey' => 'mydata' ] );

当我移动到另一个页面时,我会尝试取回我的数据。

$data = session( 'mykey' ); // this is always null

问题是输出总是空的。而如果我回来使用默认的文件 session 驱动程序,一切都会按预期工作,我可以从 session 中获取我的存储值。

我的 config/session.php 中的其他值是默认值:

'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => false,
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'path' => '/',
'domain' => null,
'secure' => false,

我是否在配置中遗漏了什么?

最佳答案

Laravel 存在 session 持久化问题 https://github.com/laravel/framework/issues/6506

你必须在每次添加、更新或删除 session 后执行 Session::save(),如下所示

$id = Input::get('id');
Session::forget('cart.' .$id);
Session::save();

关于php - Laravel - session 不与数据库驱动程序保持一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com