Laravel 会话数据不会跨页面加载

Laravel session data not sticking across page loads(Laravel 会话数据不会跨页面加载)
本文介绍了Laravel 会话数据不会跨页面加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试运行以下代码:

Session::put('progress', '5%');

dd(Session::get('progress'));

这将在转储中显示5%".

This will show '5%' in the dump.

如果我重新运行同一页面但注释掉 Session::put('progress', '5%'); 以便只有 dd() 行调用时,我得到一个空值,而不是上一页加载中存储的 5% 值.

If I rerun the same page but comment out Session::put('progress', '5%'); so that only the dd() line is called, I get a null value instead of the 5% values stored in the previous page load.

这是我的会话配置,所以我知道它应该存储数据:

Here is my sessions config, so I know it should be storing the data:

'driver' => 'native',
'lifetime' => 120,
'expire_on_close' => false,

为什么 Laravel 不跨页面加载存储会话数据?

Why is Laravel not storing the session data across page loads?

推荐答案

问题是因为你在 Laravel 完成其应用程序生命周期之前杀死了脚本,所以放入会话中的值(但尚未存储)也被杀死了.

The problem is because you are killing the script before Laravel finishes its application lifecycle, so the values put in session (but not yet stored) got killed too.

当 Laravel 应用程序生命周期开始时,Session 中的任何值 put 都尚未存储,直到应用程序生命周期结束.这就是 Session 中的任何值 put 最终/真正 stored.

When a Laravel application lifecycle starts, any value put in Session are not yet stored until the application lifecycle ends. That is when any value put in Session will be finally/really stored.

如果您查看来源,您会发现相同的上述行为:

If you check the source you will find the same aforementioned behavior:

 public function put($key, $value)
 {
     $all = $this->all();

     array_set($all, $key, $value);

     $this->replace($all);
 }

<小时>

如果要测试它,请执行以下操作:


If you want to test it, do the following:

  1. 在会话中存储一个值而不杀死脚本.

  1. Store a value in session without killing the script.

Route::get('test', function() {
    Session::put('progress', '5%');
    // dd(Session::get('progress'));
});

  • 检索已经存储的值:

    Route::get('test', function() {
        // Session::put('progress', '5%');
        dd(Session::get('progress'));
    });
    

  • 这篇关于Laravel 会话数据不会跨页面加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

    本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

    相关文档推荐

    Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
    in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
    all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
    trim function is giving unexpected values php(Trim函数提供了意外的值php)
    Basic PDO connection to MySQL(到MySQL的基本PDO连接)
    PHP number_format returns 1.00(Php number_Format返回1.00)