2017-08-30 93 views
0

我的项目是使用三种不同的服务,现在我永远不会获得会话值,我试过laravel网站教程和休耕的链接问题: Laravel - Session returns null 但他们没有工作!在其他方法会话返回null无论如何

$result = SocketHelper::sendRequest($req); 

    Session::put('uuid', $result->uuid); 
    Session::save(); 

    Session::put('userId', $result->userID); 

    return Redirect::route('login_step_two'); 

:在第一 ,我使用这个库:

use Session; 

在控制器类

$uuid = Session::get('uuid'); 

    $userId = Session::get('userId'); 

但这是空的:(( 确实我必须使用cookie?! 我最近升级到laravel 5.4 请帮帮我! 它让我conf用过的! thx

+0

首先,你升级了哪个版本?此外,您尝试访问会话的位置在哪里在路由文件中,在控制器方法中,在控制器中的__construct方法中? –

+0

它是5.2,我第一次升级到5.3和5.4,现在我在控制器中使用会话,三种方法,我的意思是需要将会话放在auth方法中,并使用其他方法。 –

回答

0

您是否已正确升级到laravel 5.4?

Laravel Docs 会议

Symfony的兼容性

Laravel的会话处理程序不再执行的Symfony的SessionInterface。实现这个接口需要我们实现框架不需要的无关特性。相反,已经定义了一个新的接口,并且可以用来替代。还应该应用以下代码更改:

对 - > set()方法的所有调用应更改为->put()。通常,Laravel应用程序永远不会调用set方法,因为它从未在Laravel文档中记录过。但是,这里包括在内的是谨慎的。

->getToken()方法的所有调用应更改为->token()

$request->setSession()方法的所有调用应更改为setLaravelSession()

+0

这是我的部分代码: Session :: put('uuid',$ result-> uuid); //设置会话 $ uuid = Session :: get('uuid'); //获取控制器类的其他方法中的会话,但我收到null 我不明白你答案的第一部分,do我现在需要实现Illuminate \ Contracts \ Session \ Session界面?而不是在新的框架上实施?我应该在哪里做?哪个类/路径? –

+0

你有什么想法吗? –

+0

如果你正在使用'SessionInterface',那么是的,你必须改变它并现在使用'会话' –

0

尝试保存Session明确这样,给它一个尝试它为我工作,希望对你也一样。

Session::put('test_session', 'test message'); 
Session::save(); 

并检索它像这样

echo Session::get('test_session'); 

而忘记这样说:

Session::forget('test_session'); 
Session::save(); 
+0

我测试了它,我没有使用这个代码:Session :: save();但它还没有工作 –

+0

发布您的代码,更新您的问题 –

+0

我编辑它并添加代码 –

0

你还必须写在PHP会话目录会话文件的权利? 检查session_save_path()返回的路径,并检查您的php用户是否有权写入它,检查目录中是否存在文件以及它们的创建日期。

+0

thx为你的答案,我用这个方法,看到的路径是:C:\ xampp \ tmp框架/会话在配置中给出/会话并将新文件添加到此路径! –

+0

好吧,我猜你是在Linux环境下,但如果你在Windows和Session似乎工作,这可能是一个框架问题。检查其他答案。 – EkinOf

+0

我在Windows上,thx –