Warning: Undefined array key "zibbs_visit" in /www/wwwroot/www.qwesky.club/application/controllers/IndexController.php on line 100
九:laravel中session的使用 — php — 我的学习笔记

九:laravel中session的使用


1、使用session门面

控制器头部引用use Illuminate╲Support╲Facades╲Session;

由于session门面在app.php中已经定义好别名,所以在控制器中引入的时候直接使用use Session;

Session::put('key','value');//session中存储一个值

Session::get('key');//Session中获取一个值

$value = Session::get('key','default');//session中获取一个值或返回一个默认值(如果不存在key)。

$value = Sessiom::get('key',function(){return 'default';});

Session::all();//session中获取所有变量

Session::has('users');//检查一个变量是否在Session中

Session::forget('key');//session中删除一个变量

Session::flush();//Session中删除所有变量

补充:Session方法也可以在视图中使用。如:{{Session::get('code')}}

2、缓存操作

laravel为不同的缓存系统提供了统一的API,缓存配置位于config/cache.php。在改文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel目前支持主流的缓存后端如:

Memcached和Redis等。

主要方法:

Cache::put();

Cache::get();

Cache::add();

Cache::pull();

Cache::forever();

Cache::forget();

Cache::has();

系统默认是使用文件缓存,器缓存文件村存储的位置位于(storage/framewoek/cache/data):

1、设置缓存

语法:Cache::put('key','value',$minutes);

注意:如果该键已经存在,则直接覆盖原来的值,有效期必须设置,单位是分钟。

语法:Cache::add('key','value',$minutes);

add方法只会在缓存项不存在的情况下添加数据到缓存,如果数据被成功添加到缓存返回true,否则,返回false.

永久存储数据

forever方法用于持久化存储数据到缓存,这些值必须通过forget方法手动从缓存中移除:Cache::forever('key','value');

test2026-04-05 22:01


Cache门面的get方法用于从缓存中获取缓存项,如果缓存不存在,返回null,如果需要的话你可以传递第二个参数到get方法指定缓存项不存在时返回的自定义默认值,

$value = Cache::get('key');

$value = Cache::get('key','default');

也可以传递一个匿名函数作为默认值,如果缓存项不存在的话闭包的结果将会被调用,传递匿名函数允许你可以从数据库

或其他外部服务器获取默认值。

$value= Cache::get('key',function(){

    return DB::table(...)->get();

});

检查缓存项是否存在

has:方法用于判断缓存项是否存在:

if(Cache::has('key')){

    //

}

3、删除缓存数据

语法:

$value = Cache::pull('key');从缓存中获取缓存项然后删除,如果缓存项不存在返回null

Cache::forget('key');使用forget方法从缓存中移除缓存项数据

Chche::flush();使用flush方法清除所有缓存,并且删除对应目录。

4、缓存数值增加或减少

increment和decrement方法用于调整缓存中的整型数值,这两个方法都可以接收第二个参数

来指明缓存项数值增加和减少的数目:

Cache::increment('key');

Cache::increment('key',$amount);

Cache::decrement('key');

Cache::decrement('key',$amount);

5、获取并存储

有时候你可能想要获取缓存项,但如果请求的缓存不存在时给它存储一个默认值,例如,你可能想要从缓存中获取所有用户

,或者如果它们不存在的话,从数据库获取它们并将其添加到缓存中,你可以使用Cache::remember方法实现。

$value = Cache::remember('user',$minutes,function(){

    return DB::table('users')->get();

});

如果缓存不存在,传递remember方法的闭包被执行并且将其结果存放到缓存中。

还可以联合remember和forever方法:

$value = Cache::rememberForever('users',function(){

    return DB::table('users')->get();

});

经常使用的:add/put、get、has、forget、flush、remember

test2026-04-06 13:59