Laravel会话/存储在刷新时为空

时间:2014-10-05 18:48:52

标签: php laravel

我有以下代码:

            echo 'First try: <br />';
            $input = Session::get('input');
            pre($input, false);

            echo 'Second try: <br />';
            Session::put('input', 'test');
            pre(Session::get('input'));

在第一次加载时给出以下输出:

First try:
Second try:
test

这是第一次,但是当我重新加载页面时,我得到完全相同的输出。刷新后,所有数据都会丢失。

我知道这不是闪存数据,但我无法找出它为什么不存储数据。我在Windows上使用基于文件的会话和Xampp(使用artisan服务时也是如此)。

存储文件夹是可写的。

编辑:刚试过数据库会话,结果相同。我直接在routes文件中执行此操作,因此没有其他代码可以搞砸它。

预功能:

function pre( $data , $kill = true)
{
    echo '<pre>'.print_r($data,true).'</pre>';
    if($kill){
      exit;
}

1 个答案:

答案 0 :(得分:3)

Laravel的会话数据是作为响应关闭过程的一部分编写的。这是出于提高效率的原因 - 如果您在请求中进行了数十次Session::put次调用,最好一次性批量处理这些调用。

因此,如果您不对View::makeResponse::json或您有什么内容做出回复,而是exitdie,则会话在您将响应生命周期缩短时,数据不会被写入。