Laravel操作session和cookie的教程详解

 更新时间:2023年02月09日 15:44:22   作者:huaweichenai  
这篇文章主要为大家详细介绍了Laravel操作session和cookie的教程,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下

一:操作session

1:session配置

Session 的配置文件存储在config/session.php中,配置参数有:

(1):配置session驱动

'driver' => env('SESSION_DRIVER', 'file'),//#这里表示先读取.env文件的SESSION_DRIVER参数值,如果没有使用file驱动

laravel自带的驱动

  • file - 将 Session 保存在 指定文件地址 中。
  • cookie - Session 保存在安全加密的 Cookie 中。
  • database - Session 保存在关系型数据库中。
  • memcached / redis - Sessions 保存在其中一个快速且基于缓存的存储系统中。
  • array - Sessions 保存在 PHP 数组中,不会被持久化。

(2):配置失效时间

'lifetime' => env('SESSION_LIFETIME', 120),

(3):使用file驱动时session文件保存地址

'files' => storage_path('framework/sessions'),

(4):使用redis驱动时指定 Session 使用哪个 Redis 连接

'connection' => null,//不修改使用默认的redis

(5):使用database驱动时将session数据存入的数据库名

'table' => 'sessions',

使用database驱动时,在目录命令行执行

php artisan session:table

这时候会在database/migrations目录下生成一个创建session数据表的文件

/**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('sessions', function (Blueprint $table) {
            $table->string('id')->unique();
            $table->unsignedBigInteger('user_id')->nullable();
            $table->string('ip_address', 45)->nullable();
            $table->text('user_agent')->nullable();
            $table->text('payload');
            $table->integer('last_activity');
        });
    }
 
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('sessions');
    }

然后执行

php artisan migrate

这时候会在数据库中生成一个sessions表,这个表就是保存session数据的表

2:设置session

(1):使用Request实例设置session

$request->session()->put('key', 'value');//设置session
$request->session()->push('arr','item');//session数组数据中追加数据

(2):使用全局辅助函数session设置

session(['key' => 'value']);//设置session
session()->push('arr','item');//session数组数据中追加数据

3:获取session

(1):使用Request实例获取session

$data = $request->session()->all();//获取所有session
$value = $request->session()->get('key');//获取指定session

获取指定session,不存在设置默认值

$value = $request->session()->get('key', 'default');
$value = $request->session()->get('key', function () {
    return 'default';
});
//确定 Session 中是否存在某个值,该值存在且不为 null,那么 has 方法会返回 true
if ($request->session()->has('key')) {
    //
}
//确定 Session 中是否存在某个值,即使其值为 null,返回 true
if ($request->session()->exists('key')) {
    //
}

(2):使用全局辅助函数session获取

$value = session('key');
$value = session('key', 'default');
$value = session()->get('key')
$value = session()->get('key','default')
session()->has('key');
session()->exists('key');

4:删除session

(1):使用Request实例删除session

//获取到session数据然后删除session
$value = $request->session()->pull('key', 'default');
//删除指定session
$request->session()->forget('key');
//删除所有session
$request->session()->flush();

(2):使用全局辅助函数session删除

//删除指定session
session()->forget('name');
//清空所有session
session()->flush();

5:重新生成 Session ID

(1):使用Request实例重新生成 Session ID

$request->session()->regenerate();

(2):使用全局辅助函数session重新生成 Session ID

session()->regenerate();

二:操作cookie

1:设置cookie

Cookie::queue('test', 'testValue', 10);//设置cookie,test值为testValue,设置cookie时长10分钟
Cookie::make('cookie_name', 'value', 10);//设置cookie,cookie_name值为value,设置cookie时长10分钟
Cookie::forever('key','value');//设置cookie,key值为value,永不过期

注意:如果使用Cookie::make()或Cookie::forever()方法设置cookie的话,渲染视图时不能直接使用:

return \response()->view('index',$data)->withCookie($cookie);

2:获取cookie

Cookie::get('key');

3:删除cookie

Cookie::forget('key');

到此这篇关于Laravel操作session和cookie的教程详解的文章就介绍到这了,更多相关Laravel操作session cookie内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mac OS下配置PHP+MySql环境

    Mac OS下配置PHP+MySql环境

    本文详细介绍了在mac OS系统下安装配置PHP+MySql环境的详细步鄹,十分的全面,这里推荐给有相同需求的小伙伴们。
    2015-02-02
  • php二维码生成

    php二维码生成

    在二维码越来越普及之际。我们需要了解一下什么是二维码,作为了一个php programer,我们更需要知道如何使用 php生成二维码。废话少说,下面说正题。
    2015-10-10
  • php提供实现反射的方法和实例代码

    php提供实现反射的方法和实例代码

    在本篇文章里我们给各位分享了一篇关于php提供实现反射的方法和实例代码相关内容,有兴趣的朋友们参考下。
    2019-09-09
  • PHP实现AES256加密算法实例

    PHP实现AES256加密算法实例

    这篇文章主要介绍了PHP实现AES256加密算法,包括了对应的类文件及演示demo实例,并附带另一个PHP mcrypt加密实例供大家参考借鉴,需要的朋友可以参考下
    2014-09-09
  • PHP实现随机发扑克牌

    PHP实现随机发扑克牌

    这篇文章主要为大家详细介绍了PHP实现随机发扑克牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • php浏览历史记录的方法

    php浏览历史记录的方法

    这篇文章主要介绍了php浏览历史记录的方法,涉及php操作cookie的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • Yii操作数据库的3种方法

    Yii操作数据库的3种方法

    这篇文章主要介绍了Yii操作数据库的3种方法,需要的朋友可以参考下
    2014-03-03
  • JS实现php的伪分页

    JS实现php的伪分页

    假如某一个页面的数据很多,不方便全都显示出来,而且假设里面有个播放器,不希望在翻页的时候播放器会终止的话,就可以采用这个方法尽管可以用Ajax,但是在数据比较少的情况下,这个方法更有优势
    2008-05-05
  • 学习php设计模式 php实现策略模式(strategy)

    学习php设计模式 php实现策略模式(strategy)

    这篇文章主要介绍了php设计模式中的适配器模式,使用php实现适配器模式,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • php实现word转html的方法

    php实现word转html的方法

    这篇文章主要介绍了php实现word转html的方法,涉及PHP调用com组件操作word文档的相关技巧,需要的朋友可以参考下
    2016-01-01

最新评论