2016-03-02 54 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文件,並恢復它重新工作 –