laravel快速入门:响应处理、会话与缓存操作实战

前言

在Laravel框架中,响应处理、会话控制以及缓存操作是构建动态Web应用不可或缺的部分。响应处理决定了应用如何与用户交互,无论是返回常规页面、处理AJAX请求还是进行页面跳转,都是提升用户体验的关键环节。会话控制则用于跟踪用户的会话状态,实现如用户登录、购物车等需要记忆用户信息的功能。而缓存操作则通过存储临时数据来减少数据库访问次数,提高应用性能。
本指南将深入讲解Laravel中的响应处理、会话控制以及缓存操作,从常规响应、AJAX请求的响应、跳转响应,到会话的创建、使用与销毁,再到缓存的设置、获取与删除,以及缓存数值的增加/减少等高级功能,全面覆盖这些关键技术的使用方法和注意事项。通过本指南的学习,您将能够熟练掌握Laravel中的响应处理、会话与缓存操作,为构建高效、可扩展的Web应用提供有力支持。无论您是Laravel的新手还是有一定经验的开发者,本指南都将为您带来实用的技巧和深入的理解。

1、响应【重点】

在laravel中,相应正常情况下有2个类型:常规的直接响应,另外一个是ajax的响应。
其中展示视图以及直接响应字符串都属于常规的响应。

1.1 常规响应:

展示视图:return view('welcome');
直接返回某个字符串:return 'hello world';

1.2 ajax请求的响应

语法:return response() -> json(需要json输出的数据); // 数据是数组格式,对象也可以
例:创建一个路由,访问对应的页面之后,获取member表信息,页面输出json格式的响应。
1、创建路由
/member
在这里插入图片描述
2、创建需要的方法并获取基本数据
在这里插入图片描述
效果:
在这里插入图片描述

1.3 跳转响应(重定向)

在有一些页面,例如同步添加操作,完成操作之后不能停留在当前页面,最好做一个跳转操作,也就是需要一个跳转的响应。
两个挑战方式任选一个:
1、return redirect(路由) -> withErrors([]); 该参数的路由可以是完整的请求路由,也可以是通过route方法+别名获取的路由。
2、return redirect() -> to(路由); 简写成:return redirect(路由)

错误信息的获取与之前自动验证那里的方式一样,通过$errors变量来获取即可。

2、会话控制(记忆)

常见应用:增删改查
session默认存到文件中
session文件的目录:storage\framework\sessions
在这里插入图片描述

2.1 使用Session类

控制器头部引用use Illuminate\Support\Facades\Session;
由于session类在app.php中已经定义好别名,
所以在控制器中引入到时候可以直接use Session在控制器中直接引入session
在这里插入图片描述

Session::put(‘key’, ‘value’); Session中存储一个变量
$value = Session::get(‘key’); Session中获取一个变量
$value = Session::get(‘key’, ‘default’); Session中获取一个变量或返回一个默认值(如果变量不存在)
$value = Session::get(‘key’, function () {return ‘default’;});
Session::all(); Session中获取所有变量
Session:has(‘users’); 检查一个变量是否在Session中存在
Session::forget(‘key’); Session中删除一个变量
Session:flush(); Session中删除所有变量
补充:session方法也可以在视图中使用,如:{{Session::get('code')}};

3、缓存操作(记忆)

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

Cache::put()
Cache::get()
Cache::add()
Cache::pull()
Cache::forever()
Cache::forget()
Cache::has()

系统默认是使用文件缓存,其缓存文件存储到位置位于(storage/framework/cache/data)
在这里插入图片描述

3.1 设置缓存

语法:Cache::put('key', 'value', $minutes)
Key:键
Value:值
$minutes:有效期,单位是分钟

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


语法:Cache::add('key', 'value', $minutes);
Key:键
Value:值
$minutes:有效期,单位是分钟

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


3.1.1 使用put

定义路由:在这里插入图片描述
定义方法:
在这里插入图片描述
在页面中访问此路由:
在这里插入图片描述
效果:
在这里插入图片描述

3.1.2 使用add

在这里插入图片描述
效果:
在这里插入图片描述
验证了add如果有这个键则不会覆盖。


永久存储数据
forever方法用于持久化存储数据到缓存,这些值必须通过forget方法手动从缓存中移除。

3.2 获取缓存数据

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

$value = Cache::get(‘key’); 获取指定的key值。
$value = Cache::get(‘key’, ‘default’); 获取指定的key值,如果不存在,则使用默认值。

可以传递一个匿名函数作为默认值,如果缓存项不存在的话闭包的结果将会被返回。传递匿名函数允许你可以从数据库或其他外部服务获取默认值:

$value = Cache::get('key', function (){
	return DB::table(...) -> get();
})

检查缓存项是否存在:

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

3.3 删除缓存数据

语法:$value = Cache::pull('key'); 从缓存中获取缓存项然后删除,如果缓存不存在的话返回null,一般设置一次性的存储的数据。


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


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

4、缓存数值的增加 / 减少

increment和decrement方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的树木:一般会用作计数器(参考一般不怎么做)。

Cache::increment(‘key’);
Cache::increment(‘key’, $amount);
Cache::decrement(‘key’);
Cache::decrement(‘key’, $amount);

例:
在这里插入图片描述

效果:
在这里插入图片描述
注意:如果用计数器,则在初始化的时候不能使用put和forever,因为这个2个方法都会重复的初始化计数器。

5、获取并存储(重点)

有时候可能想要获取缓存项,但如果请求的缓存项不存在时给它储存一个默认值。例如,可能想要从缓存中获取所有用户,或者如果它们不存在的话,从数据库获取它们并将其添加到缓存中,你可以通过使用Cache::remember方法实现:

$value = Cache::remember('key', $minutes, function () {
	Cache::add('key', 'value', $minutes)
	return DB::table('users') -> get();
})

比较典型的操作就是在获取微信的access_token的时候可以使用,原因是access_token本身一天只有2000次的配额,而其有7200s的有效期,在有效期内可以不用去刷新请求。

demo:
在这里插入图片描述

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值