我的项目使用三种不同的服务,现在我永远无法获得会话值,我尝试了laravel网站教程和休耕链接问题:Laravel-会话返回空
但它们都不起作用!
第一次,我使用了这个库:
use Session;
在控制器class
:中
$result = SocketHelper::sendRequest($req);
Session::put('uuid', $result->uuid);
Session::save();
Session::put('userId', $result->userID);
return Redirect::route('login_step_two');
在另一种方法中:
$uuid = Session::get('uuid');
$userId = Session::get('userId');
但是这些是null
!我必须用饼干吗?我最近升级到laravel 5.4
请帮帮我!这让我很困惑!
谢谢。
试着这样显式地保存Session
,试一下它对我有效,希望你也一样。
Session::put('test_session', 'test message');
Session::save();
然后像这个一样检索
echo Session::get('test_session');
这样忘记吧:
Session::forget('test_session');
Session::save();
我知道空结果是因为我将$request的值发布到另一个模板,并且它被更改为:((!太容易知道了!
您是否已正确升级到laravel 5.4?
Laravel文档会话
Symfony兼容性
Laravel的会话处理程序不再实现Symfony的SessionInterface
。实现这个接口需要我们实现框架不需要的无关功能。相反,已经定义了新的IlluminateContractsSessionSession
接口,并且可以取而代之地使用该接口。还应应用以下代码更改:
所有对->set((方法的调用都应更改为->put()
。通常,Laravel应用程序永远不会调用set方法,因为它从未在Laravel文档中记录过。然而,出于谨慎,此处包含了它。
对->getToken()
方法的所有调用都应更改为->token()
。
对$request->setSession()
方法的所有调用都应更改为setLaravelSession()
。
您仍然有权在php会话目录中写入会话文件吗?检查session_save_path()
返回的路径,检查php用户是否有权在其中写入,还检查目录中是否有文件以及它们的创建日期。