1. 首先,启动 Web 后,默认会有 session,通过下面代码获取所有;
//获取所有 session
return request()->session()->all();
2. 使用 get()获取某一个 session;
//获取其中一个 session
return request()->session()->get( '_token ');
//参数 2,闭包设置默认值
return request()->session()->get( 'name ', function () {
return 'no session name ';
});
3. 当然,也可以采用 Session::get()来获取 session;
return Session ::get( '_token ');
4. 助手函数 session(),可以获取并可以设置默认值;
//获取 session 值
return session( '_token ');
//获取 session 值并设置默认值
return session( 'name ', 'no session name ');
5. 判断是否存在 session 有两种方案,都支持 request()方式;
return Session::has( 'name '); //判断是否存在且不为 null
return Session::exists( 'name '); //判断是否存在,即使是 null
6. 也可以使用助手函数传递数组的方式或 put()方法,来存储 session 值;
//设置 session 值
session([ 'name ' => 'Mr.Lee ']);
//也支持 request()存储
Session::put( 'name ', 'MrWang ');
7. 使用 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 ');
8. 使用 flash()方法,获取后自动删除,支持 request()方式;
//存储的 session 只能被获取一次,然后自动删除,flash 也称为闪存数据
Session::flash( 'name ', 'Mr.Lee ');
9. 如果使用闪存数据,本次请求不要立刻自行删除,可以使用 reflash();
//本次请求获取,不要删除数据,给下一次请求时再自行删除,这是保存所有闪存数据
Session::reflash(); //Session::keep([ 'name ' ]);保存单独的删除数据 return Session ::get( 'name ');
10. 如果 forget()可以删除一条或多条 session 数据,支持 request()方式;
//删除一条数据
Session::forget( 'name '); //Session::forget([ 'name '])
return Session ::get( 'name ');
//删除一条数据,并返回
Session::pull( 'info ');
//删除所有数据
Session::flush();
11. 如果 regenerate()可以重新生成 SessionID;
//重新生成 SessionID
Session::regenerate();
//获取 SessionID
return Cookie ::get( 'laravel_session ');