一、session默认配置目录:config / session.php
1、21行,默认使用 file 驱动。还支持"cookie", "database", "apc","memcached", "redis", "dynamodb", "array" 等驱动方式
2、34行,设置session有效期
3、88行,若使用数据库驱动,默认表为sessions
4、laravel中默认开启session start。App / Http / Kernel.php 34行
二、配置路由,需要用到session的,将其放到中间件里,如:
Route::group([‘middleware‘ => [‘web‘]] , function(){ Route::any(‘/session1‘ , ‘XxxController@session1‘); Route::any(‘/session2‘ , ‘XxxController@session2‘); });
二、使用session的三种方法
1、Http request类的session方法
先引入
use Illuminate\Http\Request;
存取session键值对
public function session1(Request $request){ //存入键值对 $request->session()->put(‘key1‘,‘value1‘); } public function session2(Request $request){ //读取键值对 echo $request->session()->get(‘key1‘); echo $request->session()->get(‘key1‘,‘default‘);//若key1不存在,则用default }
2、session() 辅助函数
//session全局辅助函数 public function session1(){ //存入键值对 session([‘key‘ => ‘value‘]); } public function session2(){ //读取键值对 echo session(‘key‘); echo session(‘key‘, ‘default‘);//若key不存在,则用default }
3、Session facade
三、检索 & 删除一条数据(request方法)
//检索 & 删除一条数据() public function session1(Request $request){ $request->session()->put(‘key‘,‘value‘); } public function session2(Request $request){ echo $request->session()->pull(‘key‘, ‘default‘); }
四、取出session所有的值(request方法)
//取出session所有的值 public function session1(Request $request){ $request->session()->put(‘key1‘,‘value1‘); $request->session()->put(‘key2‘,‘value2‘); } public function session2(Request $request){ dd($request->session()->all()); }
五、判断某个值是否存在,且不为null
if ($request->session()->has(‘users‘)) { // }
六、判断某个值是否存在,可以为null
if ($request->session()->exists(‘users‘)) { // }
七、删除session的值(request方法)
// 删除单个值... $request->session()->forget(‘key‘); // 删除多个值... $request->session()->forget([‘key1‘, ‘key2‘]); //全删 $request->session()->flush();
八、闪存数据(request方法)
第一次访问存在,第二次访问就消失
//闪存数据 public function session1(Request $request){ $request->session()->flash(‘key‘, ‘value‘); } public function session2(Request $request){ echo $request->session()->get(‘key‘); }
原文:https://www.cnblogs.com/mingliangge/p/13174528.html