配置
session配置文件位於config/session.hpp 默認情況下使用session驅動為文件驅動,在生產環境中,建議使用memcache或者redis驅動以便獲取更快的session性能。
其它Session相關問題
Laravel框架內部使用flash session鍵,所以你不應該通過該名稱添加數據項到session。
如果你需要所有存儲的session數據經過加密,在配置文件中設置encrypt配置為true。
session基本使用
獲取session中的所有數據
$request->session()->all();
使用全局的PHP函數session來獲取和存儲session中的數據
從session中獲取數據...
$value = session('key');
存儲數據到session...
session(['key' => 'value']);
$request->session()->put('key', 'value');
push 方法可用於推送數據到值為數組的session
$request->session()->push('user.teams', 'developers');
判斷session是否存在指定的項
if ($request->session()->has('users')) { }
獲取並刪除數據
$value = $request->session()->pull('key', 'default');
刪除session中的數據項
$request->session()->forget('key'); //刪除指定數據項數據
$request->session()->flush(); //刪除所有數據
重新生成sessionID
$request->session()->regenerate();
一次性數據
$request->session()->flash('status', 'Task was successful!');//該方法存儲的session數據只在隨后的HTTP請求中有效,然后將會被刪除
如果你需要在更多請求中保持該一次性數據,可以使用reflash方法,該方法將所有一次性數據保留到下一個請求,如果你只是想要保存特定一次性數據,可以使用keep方法
$request->session()->reflash();
$request->session()->keep(['username', 'email']);
View展示session數據
{{ Session::get('username') }}