- 使用Session
- 首先,启动Web后,默认会有session,通过下面代码获取所有;
//获取所有session
return request()->session()->all();
b. 使用get()获取某一个session:
//获取其中一个session
return request()->session()->get(‘_token’);
//参数2,闭包设置默认值
return request()->session()->get(‘name’, function(){
return ‘no session name’;
});
c. 当然,也可以采用Session::get()来获取session:
return Session::get(‘_token’);
d. 助手函数session(),可以获取并可以设置默认值;
//获取session值
return session(‘_token’);
//获取session值并设置默认值
return session(‘_name’, ‘no session name’);
e. 判断是否存在session有两种方案,都支持request()方式;
return Session::has(‘_token’); //判断是否存在且不为null
return Session::exists(‘_token’); //判断是否存在,即使是null
f. 也可以是用助手函数传递数组的方式或put()方法,来存储session值;
//设置session值
session([‘name’ => ‘Mr.Lee’]);
//也支持request()存储
Session::put(‘name’, ‘Mr.Lee’);
g. 使用push()方法,可以存储数组,支持request()方式;
//session数组方式,每次刷新不会覆盖内容,而是继续往下叠加
Session::push(‘info.name’, ‘Mr.Lee’);
Session::push(‘info.name’, ‘Mr.Wang’);
Session::push(‘info.name’, ‘Mr.Zhang’);
return Session::get(‘info’);
h. 使用flash()方法,获取后自动删除,支持request()方法;
//存储session只能被获取一次,然后自动删除,flash也称为闪存数据
Session::flash(‘name’, ‘Mr.Lee’);
i. 如果使用闪存数据,本次请求不要立刻自行删除,可以使用reflash();
//本次请求获取,不要删除数据,只要reflash还在所有这些闪存就删不掉
Session::reflash(); //Session::forget([‘name’])
return Session::get(‘name’);
j. 如果forget()可以删除一条或多条session数据,支持request()方式
//删除一条数据
Session::forget(‘name’); //Session::forget([‘name’, ‘info’]);
//删除一条数据,并返回
return Session::pull(‘info’);
//删除所有数据
return Session::flush();
k. 如果regenerate()可以重新生成SessionID;
//重新生成SessionID
Session::regenerate();
//获取SessionID
return Cookie::get(‘laravel_session’);