laravel学习笔记--响应篇

本文介绍了Laravel中创建HTTP响应的各种方法,包括简单的字符串响应、带有头部信息和Cookies的响应,以及重定向到不同路径的功能。同时展示了如何进行文件下载和流下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建响应

Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串,框架会自动将这个字符串转化为一个完整的
HTTP 响应

 return 'Hello World';

Response 对象

通常,我们并不只是从路由动作简单返回字符串和数组,大多数情况下,都会返回一个完整的 Illuminate\Http\Response 实例或视图

return response('hello', 200)
            ->header('Content-Type', 'text/plain')

添加响应头–在处理跨域资源的时候比较好用

大部分的响应方法都是可链式调用的,使得创建响应实例的过程更具可读性

return response('hello', 200)
            ->header('Content-Type', 'text/plain')
            ->header('X', 320);

添加 Cookies 到响应

可以使用响应上的 cookie 方法轻松地将为响应增加 Cookies。例如,你可以像这样使用 cookie 方法生成一个 cookie,并轻松地将其附加到响应上

return response('hello', 200)
            ->header('Content-Type', 'text/plain')
            ->cookie('name', 'value', 23);

重定向
全局辅助函数 redirect

return redirect('/');

有时候你可能希望将用户重定向到之前的位置,比如提交的表单无效时。这时你可以使用全局辅助函数 back 来执行此操作

return back()->withInput();

重定向到命名路由

return redirect()->route('login');

如果路由中有参数,可以将其作为第二个参数传递到 route 方法

return redirect()->route('profile', ['id' => 1]);

重定向到外部域名

return redirect()->away('https://www.baidu.com');

重定向到控制器行为

return redirect()->action([HomeController::class, 'index']);//第二参数还可以传递参数

重定向并使用闪存的 Session 数据(一次性session),再次刷新页面就没有了

return redirect('/user')->with('status', '修改成功');

文件下载–download

download 方法可以用于生成强制用户浏览器下载给定路径文件的响应。 download
方法文件名作为其第二个参数,它将作为用户下载文件的文件名

return response()->download(public_path('css/index.css'), 'ww.css');

流下载

有时,你可能希望将给定操作的字符串响应转换为下载响应,而不需要将其写入磁盘。此时可以使用 streamDownload
方法。这个方法接受回调、文件名和可选的头信息数组作为参数

return response()->streamDownload(function () {
            echo 'ces';
        }, 'laravel-readme.txt');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小信啊啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值