您现在的位置是:自如初>LaravelLaravel

Laravel8.x中Session使用简单记录

小白 2020-12-26 20:29:20 Laravel 200人已围观

简介Laravel8.x中Session使用简单记录。为了方便记录,Session的操作就routes/web.php路由文件中完成。


为了方便记录,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日

很赞哦!(10)

文章评论

登录 注册

自如初--时间轴

站名:自如初

独白:向前走!向前走!

邮箱:457969743@qq.com

站点信息