ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] Session配置文件保存在config/session.php 默认使用file驱动,如果使用的是数据库驱动 >'table'=>'sessions' 表名就是这个 使用session前要开启session,laravel开启session要设置中间件 # 第一种 $request->session() ~~~ public function session(Request $request) { //添加session $request->session()->put('key1','value1'); //取出session数据 echo $request->session()->get('key1'); } ~~~ > 注意这边session是使用request组件的 # 第二种 session辅助函数 ~~~ session()->put('key2','value2'); //设置 echo session()->get('key2'); //读取 ~~~ # 第三种 Session类 ~~~ //use Illuminate\Support\Facades\Session; Session::put('key','value'); //设置值 echo Session::get('key','default'); //取值,没有就输出默认default //数组形式添加 Session::put(['key'=>'value']); //设置值 echo Session::get('key3','default'); //取值,没有就输出default //如果想存数组进去 Session::push('student','sean'); Session::push('student',17); //取出来是个数组 //读取所有 $res=Session::all(); dd($res); //判断有没有存在 if(Session::has('student')) { echo '存在'; } ~~~ # 删除指定key的session > Session::forget('student'); # 清空所有的session > Session::flush(); laravel中session支持二级存储 ~~~ session()->set('person.name','jdxia'); session()->set('person.friend.age',17); dd(session()->all()); /** *array:4 [▼ * "_token" => "LdCqI9SydkSeur9xrGcWS7ntQGyzDmO5jURx11Ve" * "_previous" => array:1 [▶] * "_flash" => array:2 [▶] * "person" => array:2 [▼ * "name" => "jdxia" * "friend" => array:1 [▼ * "age" => 17 * ] * ] *] ~~~ # Seesion暂存 ~~~ public function session1(Request $request) { Session::flash('key','value'); } public function session2(Request $request) { //第一次能输出这个session,下次输出就没有 echo Session::get('key'); } ~~~ 在使用 Laravel Session 的时候,其中一部分的开发者可能会遇上 session 取不到值的,然后一直会纠结在这个问题上面,久久不能自拔。出现这个问题的原因基本上就是在使用 session 的时候,也使用了 dd() 或者 die 这样的语句来终止程序,然而在 laravel 中: **这也终止了 session 的写入!!!**。所以在 Laravel 使用 session 的时候,不要使用 类似于 dd() 或者 die 等终止程序的语句。