无论如何,会话返回null

时间:2017-08-30 06:56:06

标签: laravel session service null

我的项目正在使用三种不同的服务,现在我永远无法获得会话值,我已经尝试了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

请帮帮我!这让我很困惑!

感谢。

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的值发布到另一个模板并且它改变了它的方式:)))! 这很容易知道!