努力获得Laravel 5.2数据库会话工作 - 我的配置有问题吗?
问题描述:
我有一个现有的Laravel 5.2应用程序,我需要添加功能。努力获得Laravel 5.2数据库会话工作 - 我的配置有问题吗?
我有以下要求
- 为了有一个控制器,将服务于多个请求,每个 请求发送一个唯一的ID,以确定它的来源
- 不会有任何身份验证
- 要能够将会话信息保存到数据库中
我所做的:
- 在
config/session.php
,我设置会话驱动程序如下:'driver' => env('SESSION_DRIVER', 'database'),
- 数据库是建立和用户的细节配置(MySQL的)
- 从CLI,我跑
php artisan session:table
,然后php artisan migrate
- 从我控制器在第一个调用中使用我的(模拟的)唯一ID(555)创建测试会话变量:
\Session::put(555, ['a' => 'Value1']);
- 在该行下,我读取并记录会话变量:
\Log::info(print_r(\Session::get(555))
-它的工作原理!按预期输出! - 然后第二次调用进来,我希望能够读取该会话变量,这是持续使用:
\Log::info(is_array(\Session::get(555)) ? print_r(\Session::get(555),1) : 'No value')
- 检查它是否是一个数组并打印出来 - 不起作用。没有价值!
我已经通过documentation和各主题的帖子,我似乎无法让它坚持下去。
甚至在设置会话后立即尝试使用\Session::save();
。
答
您的会话在'彩票'扫描中丢失。在/config/session.php
'lottery' => [2, 100],
将此行更改为
'lottery' => [0, 100],
,它应该工作。
作为一个方面说明:与你想要实现的会议一起工作是棘手的。您可能不得不考虑使用Cookie。您可以将任意数量的数据序列化到一个cookie。 –