Laravel8.x中Session使用简单记录

作者: 温新

分类: 【Laravel】

阅读: 3729

时间: 2020-12-26 12:29:20

为了方便记录,Session的操作就routes/web.php路由文件中完成。

以上操作均在web.php路由中完成

使用Request实例操作session

存储session

put-存储session

use Illuminate\Http\Request;

Route::get('se',function(Request $request){
    // 请求实例中 put 方法设置session
    $request->session()->push("userId",1);
});

push-以数组形式存储session

Route::get('se',function(Request $request){
    $request->session()->push('user.name','wangwu');
});

push存储后的形式如下

"user" => array:1 [
   "name" => array:1 [
      0 => "wangwu"
    ]
 ]

push第一个参数,一直点下去将,点后的名称都会变是多维数组的键:

如push(a.a1.a2,'wangwu')

解释:数组a下面有一个key为a1的数组,a1下面有一个key为a2的数组,a2数组下有个key为0键,其对应的值为wangyu。

push可以追加元素进数组

更新session

覆盖已有session的值就是更新

Route::get('se',function(Request $request){
    $request->session()->put('name','李四');
	$request->session()->put('name','大明');	// 存储此结果
});

获取session

all-获取所有session

Route::get('gse',function(Request $request){
    dd($request->session()->all());
});

get-获取单个session

Route::get('gse',function(Request $request){
    dd($request->session()->get('user'));
});

删除session

forget-删除session

Route::get('des',function(Request $request){
    // 删除单个
    $request->session()->forget("key");
    // 删除多个
    $request->session()->forget(['name','age']);    
});

flush-删除所有

Route::get('des',function(Request $request){
    $request->session()->flush();
});

获取并删除

Route::get('gse',function(Request $request){
    // 先获取name,然后删除
    echo $request->session()->pull('name');
    // 打印的结果已经没有name
    dd($request->session()->all());
});

其他

flash一次性数据

falsh设置session并在下一个请求中生效。用处:如请求失败返回提示信息等。

Route::get('se',function(Request $request){
    $request->session()->flash('temp','临时数据');
});

// 请求刷新2次,会发现temp被删除了
Route::get('gse',function(Request $request){
    dump($request->session()->all());
});

使用session辅助函数

// 设置session
session(['person.name'=>'李四','person.age'=>19]);
// 获取session
session('person');
// 获取session,可设置默认值
session('person','若没有我就会被返回');
// 获取所有session
session()->all();
// 删除session
session()->forget('person');

2020-12-26

请登录后再评论