首页 > 其他 > 详细

8、Controller之Session

时间:2020-06-21 23:57:43      阅读:130      评论:0      收藏:0      [点我收藏+]

一、session默认配置目录:config / session.php

1、21行,默认使用 file 驱动。还支持"cookie", "database", "apc","memcached", "redis", "dynamodb", "array" 等驱动方式

2、34行,设置session有效期

3、88行,若使用数据库驱动,默认表为sessions

4、laravel中默认开启session start。App / Http / Kernel.php 34行

 

二、配置路由,需要用到session的,将其放到中间件里,如:

Route::group([middleware => [web]] , function(){
    Route::any(/session1 , XxxController@session1);
    Route::any(/session2 , XxxController@session2);
});

 

二、使用session的三种方法

1、Http request类的session方法

先引入

use Illuminate\Http\Request;

 

存取session键值对

public function session1(Request $request){
    //存入键值对
    $request->session()->put(key1,value1);
}
public function session2(Request $request){
    //读取键值对
    echo $request->session()->get(key1);
    echo $request->session()->get(key1,default);//若key1不存在,则用default
}

 

2、session() 辅助函数

//session全局辅助函数
public function session1(){
    //存入键值对
    session([key => value]);
}
public function session2(){
    //读取键值对
    echo session(key);
    echo session(key, default);//若key不存在,则用default
}

 

 

3、Session facade

 

三、检索 & 删除一条数据(request方法)

//检索 & 删除一条数据()
public function session1(Request $request){
    $request->session()->put(key,value);
}
public function session2(Request $request){
    echo $request->session()->pull(key, default);
}

 

 

四、取出session所有的值(request方法)

//取出session所有的值
public function session1(Request $request){
    $request->session()->put(key1,value1);
    $request->session()->put(key2,value2);
}
public function session2(Request $request){
    dd($request->session()->all());
}

 

 

五、判断某个值是否存在,且不为null

if ($request->session()->has(users)) {
    //
}

 

 

六、判断某个值是否存在,可以为null

if ($request->session()->exists(users)) {
    //
}

 

 

七、删除session的值(request方法)

// 删除单个值...
$request->session()->forget(key);

// 删除多个值...
$request->session()->forget([key1, key2]);

//全删
$request->session()->flush();

 

 

八、闪存数据(request方法)

第一次访问存在,第二次访问就消失

//闪存数据
public function session1(Request $request){
    $request->session()->flash(key, value);
}
public function session2(Request $request){
    echo $request->session()->get(key);
}

 

8、Controller之Session

原文:https://www.cnblogs.com/mingliangge/p/13174528.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!