我的项目正在使用三种不同的服务,现在我永远无法获得会话值,我已经尝试了laravel网站教程和以下链接问题: Laravel - Session returns null
但他们都没有工作!
首先,我使用了这个库:
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
!我必须使用cookie吗?
我最近升级到 laravel 5.4
请帮帮我!这让我很困惑!
感谢。
答案 0 :(得分:0)
您是否正确升级到laravel 5.4?
Laravel Docs 会话
Symfony兼容性
Laravel的会话处理程序不再实现Symfony' SessionInterface
。实现此接口需要我们实现框架不需要的无关功能。相反,已经定义了一个新的Illuminate\Contracts\Session\Session
接口,可以使用它。还应该应用以下代码更改:
对 - > set()方法的所有调用都应更改为->put()
。通常,Laravel应用程序永远不会调用set方法,因为它从未在Laravel文档中记录过。但是,这里包括它是非常谨慎的。
对->getToken()
方法的所有调用都应更改为->token()
。
对$request->setSession()
方法的所有调用都应更改为setLaravelSession()
。
答案 1 :(得分:0)
请尝试明确保存Session
,尝试一下它对我有用,希望对您有所帮助。
Session::put('test_session', 'test message');
Session::save();
并像这样检索
echo Session::get('test_session');
忘了这样:
Session::forget('test_session');
Session::save();
答案 2 :(得分:0)
您是否仍有权在php会话目录中编写会话文件?
检查session_save_path()
返回的路径,检查您的php用户是否有权写入其中,检查目录中是否有文件以及创建日期是什么。
答案 3 :(得分:0)
我理解null结果是因为我将$ request的值发布到另一个模板并且它改变了它的方式:)))! 这很容易知道!