Laravel8.x中Session使用简单记录
为了方便记录,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
请登录后再评论