2016-03-02 52 views
0

昨天它工作正常,但不知何故今天它没有将数组保存到会话中。Laravel会话突然没有被保存

if(Session::get('header')) { 
     $array['header'] = Session::get('header'); 
    } else { 
     $header = $this->loadElements(2, false); 
     $array['header'] = $header; 
     Session::put('header', $header); 
    } 

当我查看storage \ framework \ sessions文件夹时,标题在最新的会话文件中。

但是,看起来很奇怪的是,当浏览器窗口仍然打开时,在每个页面上重新加载一个新的会话文件被创建,这对我来说很奇怪。

我做了一些进一步的测试,它与我的代码无关,但都是在每次页面加载后重新创建会话。在另一个项目中,它工作正常,所以它必须与娱乐有关。

为什么Laravel突然没有阅读会话文件并重新创建它?

在config \ session.php中,我将'driver' => env('SESSION_DRIVER', 'file')更改为database,然后再次运行。

smh

回答

1

重写您的代码以使用Session :: has在您的条件而不是得到。

if(Session::has('header')) { 
    $array['header'] = Session::get('header'); 
} else { 
    $header = $this->loadElements(2, false); 
    $array['header'] = $header; 
    Session::put('header', $header); 
} 
+0

这确实是一个更好的解决方案,而不是为什么Laravel突然犯规利用会议,并在每一页上的负载创建一个新的会话文件的解决方案,直到我做了一个小的修改,以session.php文件,并恢复它重新工作 –