【问题标题】:Session return null anyway会话仍然返回 null
【发布时间】:2018-08-02 02:05:41
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 首先,你是从哪个版本升级的?此外,您在哪里尝试访问会话,例如在路由文件中,在控制器方法中,在控制器中的__construct 方法中?
  • 它是 5.2,我首先升级到 5.3,然后是 5.4,现在我在控制器中使用 session,三种方法,我的意思是需要将 session 放入 auth 方法并加入其他方法.

标签: laravel session service null


【解决方案1】:

尝试像这样明确保存Session,试一试它对我有用,希望对你也一样。

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

然后像这样检索它

echo Session::get('test_session');

然后像这样忘记它:

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

【讨论】:

  • 我测试过了,我没有使用这个代码:Session::save();但它还没有工作
  • @Gaurav Rai 谢谢。这种方法在 laravel 6 上对我有用
【解决方案2】:

我理解 null 结果是因为我将 $request 的值发布到另一个模板并且它被改变了:)))! 很容易知道!

【讨论】:

    【解决方案3】:

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

    Laravel Docs 会话

    Symfony 兼容性

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

    所有对 ->set() 方法的调用都应更改为->put()。通常,Laravel 应用程序永远不会调用 set 方法,因为它从未记录在 Laravel 文档中。但是,出于谨慎考虑,将其包含在此处。

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

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

    【讨论】:

    • 这是我的部分代码:Session::put('uuid', $result->uuid); //设置会话 $uuid = Session::get('uuid');// 在控制器类的其他方法中获取会话但我收到 null 我不明白你的答案的第一部分,我需要现在实现 Illuminate\Contracts\Session\Session 接口?它不是在新框架上实现的吗?我应该在哪里做?哪个类/路径?
    • 你有什么想法吗?
    • 如果您使用的是SessionInterface,那么是的,您必须立即更改它并使用“会话”
    【解决方案4】:

    你还有权限在 php session 目录下写 session 文件吗? 检查session_save_path()返回的路径,检查你的php用户是否有写入权限,检查目录中是否有文件以及它们的创建日期。

    【讨论】:

    • 谢谢你的回答,我使用了这个方法,看到路径是:C:\xampp\tmp 而框架/会话在配置/会话中给出,并且一个新文件被添加到这个路径中!
    • 好吧,我猜你是在 Linux 环境下,但是如果你在 Windows 上并且 Session 似乎可以工作,那可能是框架的问题。检查其他答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2016-09-23
    • 2015-10-11
    • 2019-06-08
    • 2017-07-03
    相关资源
    最近更新 更多