使用 CakePHP 3.4 和 PSR-7 自定义 HTTP 响应正文输出
CakePHP 3.4 引入了使用符合 PSR-7 的响应对象。 直接通过 echo 回显数据 现在会由于严格的标头检查而触发错误。
控制器不应回显数据。 相反,请使用以下方法输出自定义 HTTP 正文内容:
使用 PSR-7 响应接口:
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response = $this->response->withStringBody($content); $this->response = $this->response->withType('json'); return $this->response;</code>
使用已弃用的响应接口(CakePHP 3.4.3 之前):
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response->body($content); $this->response->type('json'); return $this->response;</code>
使用序列化视图:
<code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()]; $this->set('content', $content); $this->set('_serialize', 'content');</code>
此方法需要请求处理程序组件和正确的 URL 或请求标头来触发 JSON 视图渲染。
参考文献:
以上是如何使用 CakePHP 3.4 和 PSR-7 输出自定义 HTTP 响应正文内容?的详细内容。更多信息请关注PHP中文网其他相关文章!