## 返回 JSON
In it’s simplest form, JSON data can be returned with a default 200 HTTP status code.
> 在其最简单的形式中,可以使用默认的200 HTTP状态码返回JSON数据。
~~~php
$data = array('name' => 'Bob', 'age' => 40);
$payload = json_encode($data);
$response->getBody()->write($payload);
return $response
->withHeader('Content-Type', 'application/json');
~~~
Figure 15: Returning JSON with a 200 HTTP status code.
We can also return JSON data with a custom HTTP status code.
> 我们还可以使用定制的HTTP状态码返回JSON数据。
~~~php
$data = array('name' => 'Rob', 'age' => 40);
$payload = json_encode($data);
$response->getBody()->write($payload);
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
~~~
Figure 16: Returning JSON with a 201 HTTP status code.
**Reminder**
The Response object is immutable. This method returns a*copy*of the Response object that has a new Content-Type header.**This method is destructive**, and it*replaces*the existing Content-Type header.
> 提醒
> Response对象是不可变的。此方法返回具有新内容类型标头的响应对象的*copy*。**这个方法是毁灭性的**,它`替换`了现有的内容类型头。
## Returning a Redirect返回一个重定向
You can redirect the HTTP client by using the`Location`header.
> 您可以使用`Location`报头重定向HTTP客户端。
~~~php
return $response
->withHeader('Location', 'https://www.example.com')
->withStatus(302);
~~~
Figure 17: Returning a redirect to https://www.example.com
- 开始
- 安装
- 升级指南
- Web服务器
- 概念
- 生命周期
- PSR 7
- 中间件
- 依赖容器
- 实例 及通知和警告处理
- Request
- 请求方法
- 请求头信息
- 请求主体
- 上传的文件
- 请求帮助
- 路由对象
- Response
- 响应状态
- 响应标头
- 响应体
- 返回JSON
- 视图模板
- 路由
- 创建路由
- 路由回调
- 路由策略
- 路线占位符
- 路由名
- 路由组
- 路由中间件
- 路由表达式缓存
- 容器识别解析
- 封装中间件
- 路由的中间件
- 错误处理中间件
- 方法重写的中间件
- 输出缓冲中间件
- 内容长度中间件
- 扩展功能
- 以 / 结尾的路由模式
- 获取当前路由
- 设置CORS
- 使用POST表单上传文件
- 第三方组件
- slim-session
- auth
- slim-api-skeleton
- dir