Session 是服务端存储,在使用 Session 之前,需要开启初始化,在中间件文件 middleware.php;
// Session 初始化
\think\middleware\SessionInit::class
TP6.0 不支持原生$_SESSION 的获取方式,也不支持 session_开头的函数;
直接使用::set()和::get()方法去设置 Session 的存取:
Session::set('user', 'Mr.Lee'); //设置 session,参数 1 名称,参数 2 值
Session::get('user'); //读取 session,参数为名称
Session::all() //读取 session 所有内容
Request::session('user'); //读取 session,参数为名称
Request::session(); //读取 session 所有内容
::get()第二参数,可以设置当不存在值的时候,设置一个默认值:
Session::get('name') //name 不存在时返回 null
Session::get('name', '') //name 不存在时返回空
::has()判断是否赋值,::delete()删除,::pull()取值后删除:
Session::has('user');
Session::delete('user');
Session::pull('user'); //不存在则返回 null
::clear()清空整个 session:
Session::clear('');
::flash()方法,设置闪存数据,只请求一次有效的情况,再请求会失效:
Session::flash('user','Mr.Lee');
二维和助手函数助手函数更方便操作
二维操作,就是对象和数组的调用方式,如下:
// 赋值(当前作用域)
Session::set('obj.user','Mr.Lee');
// 判断(当前作用域)是否赋值
Session::has('obj.user');
// 取值(当前作用域)
Session::get('obj.user');
// 删除(当前作用域)
Session::delete('obj.user');
助手函数,更加方便操作,如下:
//赋值
session('user', 'Mr.Wang');
//has 判断
session('?user');
//delete 删除
session('user', null);
//清理全部
session(null);
//输出
echo session('user');
THE END