6响应参数
未知
2021-07-04 10:38:06
0

Response对象提供了一系列方法用于设置响应参数,包括设置输出内容、状态码及header信息等,并且支持链式调用以及多次调用。

设置数据

Response基类提供了data方法用于设置响应数据。

response()->data($data);
json()->data($data);
复制

不过需要注意的是data方法设置的只是原始数据,并不一定是最终的输出数据,最终的响应输出数据是会根据当前的Response响应类型做自动转换的,例如:

json()->data($data);
复制

最终的输出数据就是json_encode($data)转换后的数据。

如果要获取当前响应对象实例的实际输出数据可以使用getContent方法。

设置状态码

Response基类提供了code方法用于设置响应数据,但大部分情况一般我们是直接在调用助手函数的时候直接传入状态码,例如:

json($data,201);
view($data,401);
复制

或者在后面链式调用code方法是等效的:

json($data)->code(201);
复制

除了redirect函数的默认返回状态码是302之外,其它方法没有指定状态码都是返回200状态码。

如果要获取当前响应对象实例的状态码的值,可以使用getCode方法。

设置头信息

可以使用Response类的header设置响应的头信息

json($data)->code(201)->header([
    'Cache-control' => 'no-cache,must-revalidate'
]);
复制

除了header方法之外,Response基类还提供了常用头信息的快捷设置方法:

方法名 作用
lastModified 设置Last-Modified头信息
expires 设置Expires头信息
eTag 设置ETag头信息
cacheControl 设置Cache-control头信息
contentType 设置Content-Type头信息

除非你要清楚自己在做什么,否则不要随便更改这些头信息,每个Response子类都有默认的contentType信息,一般无需设置。

你可以使用getHeader方法获取当前响应对象实例的头信息。

写入Cookie

response()->cookie('name', 'value', 600);
复制

设置额外参数

有些时候,响应输出需要设置一些额外的参数,例如:
在进行json输出的时候需要设置json_encode方法的额外参数,jsonp输出的时候需要设置jsonp_handler等参数,这些都可以使用options方法来进行处理,例如:

jsonp($data)->options([
    'var_jsonp_handler'     => 'callback',
    'default_jsonp_handler' => 'jsonpReturn',
    'json_encode_param'     => JSON_PRETTY_PRINT,
]);
复制

关闭当前的请求缓存

支持使用allowCache方法动态控制是否需要使用请求缓存。

// 关闭当前页面的请求缓存
json($data)->code(201)->allowCache(false);
复制

自定义响应

如果需要特别的自定义响应输出,可以自定义一个Response子类,并且在控制器的操作方法中直接返回。又或者通过设置响应参数的方式进行响应设置输出。

上一篇:6响应输出

下一篇:6重定向

相关内容

PHP中SQLSRV处理大...
摘要:在PHP中使用SQLSRV处理大数据量时,可通过数据库端索引...
2024-11-20 10:46:41
PHP SQLSRV数据库...
本文介绍了使用PHP SQLSRV扩展进行数据库操作的示例,包括连...
2024-11-20 10:23:47
MySQL排序操作的效率优...
摘要:MySQL排序操作效率影响数据库性能,可通过使用索引、优化查...
2024-11-20 00:23:35
python pip安装r...
python pip安装requests报错一片红解决方法
2024-07-29 10:12:25
将Html5手机端网站封装...
将Html5手机端网站封装为微信小程序的方法
2024-03-29 11:02:54
抱歉!该站点已经被管理员停...
抱歉!该站点已经被管理员停止运行,请联系管理员了解详情
2024-01-10 14:13:14

热门资讯

tp6开发规范 命名规范 请理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。 ThinkPHP6....
6高级查询 快捷查询 快捷查询方式是 一种多字段相同查询条件 的简化写法,可以进一步简化查询条件的写法,在多个字...
tp6多应用提示控制器不存在:... 第一个情况是没有使用composer安装扩展。 如果要使用多应用模式, 你需要win+r,cmd指针...
6配置 配置目录 单应用模式 对于单应用模式来说,配置文件和目录很简单,根目录下的 config 目录下面就...
6异常处理 和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面。 异...
6swoole 本篇内容主要讲述了最新的 think-swoole 扩展的使用。目前仅支持Linux环境或者MacO...
6助手函数 助手函数 系统为一些常用的操作方法封装了助手函数,便于使用,包含如下: 助手函数 描述 abort ...
6查询表达式 查询表达式 查询表达式支持大部分的SQL查询语法,也是 ThinkPHP 查询语言的精髓,查询表达式...
6路由参数 路由参数 路由分组及规则定义支持指定路由参数,这些参数主要完成路由匹配检测以及后续行为。 路由参数可...
6查询 模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对...