Laravel 5.4 官网资料摘记:Session

33 篇文章 0 订阅

session

Laravel支持的session类型有:

  • file
  • cookie
  • database
  • memcached/redis
  • array

当然你也可以自定义。其中file就是一般的文件存储,其生成的文件被保存在storage/framework/sessions中。cookie则是会把存储的数据进行加密处理,防止用户恶意修改。database作为缓存时,则需要创建对应的session表,该表的结构如下:

create table sessions(
    id varchar(255) unique,
    user_id int not null,
    ip_address varchar(255) not null.
    user_agent text not null,
    payload text,
    last_activity int
);

剩下的memcache/redis都只要通过Composer安装predis/predis包,并在config/database.php中设置对应的配置项,使Laravel能连接该数据库,最后再在config/session.php中开启上述配置。至于具体如何配置,那就到时候再说。

session相关函数

session()

session(['key'=>'value'])是设置,session('key')是获取。

get()

session()->get('key')是获取,session()->get('key','default value')是当key不存在时,返回default value的值。

all()

session()->all()是获取全部缓存信息。

has()

key存在且不为null才会返回truesession()->has('key')

exists()

has()的要求低,只要存在该key就会返回true

put()

传递新的值到session中,session()->put('key','value')

push()

put()的区别是push()是将值推送到数组中。假设缓存原始的数据结构如下:

$session=[
    'user'=>[
        'teams'=>[
            1,
            2,
            3
        ]
    ]
];

接下来你就可以运行:session()->push('user.teams',4);上面的值就会变成:

$session=[
    'user'=>[
        'teams'=>[
            1,
            2,
            3,
            4
        ]
    ]
];

pull()

先获取缓存中的key,然后再清除掉,session()->pull('key')

flash()

缓存一次性数据session()->flash('key','value');

reflash()

将上面的一次性数据重新有效session()->reflash()

keep()

reflash不能指定key不同,keep()是可以指定key的,session()->keep(['key1','key2'])

forget()

pull不同的是,forget()是直接删除掉该key

flush()

直接清除掉全部的keysession()->flush()

regenerate()

好像跟验证有关的,那里还没有接触。

自定义Session驱动

这里在github上找了一个MongoDB的缓存驱动,不知道有没有用:

composer require jenssegers/mongodb-session

github连接地址

具体设置方法可以看官网上的那个教程:自定义Session驱动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值