为了账号安全,请及时绑定邮箱和手机立即绑定

更改 HTTP 标头中的状态代码而不影响 Yii 1 Restful API 中的返回数据

更改 HTTP 标头中的状态代码而不影响 Yii 1 Restful API 中的返回数据

PHP
噜噜哒 2023-09-22 16:45:52
我想在Yii 1中返回带有HTTP错误代码的数据。所以我使用了以下方式来获取数据。  $code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();            $this->setOutputError($ex->getMessage());            $this->setOutputCode($code);当我以这种方式使用它时,API 返回带有 200 错误代码的数据,如下所示但我想改变标题状态200,所以我为此抛出异常,然后输出数据也改变了。我只想更改标题状态。$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();            $this->setOutputError($ex->getMessage());            $this->setOutputCode($code);            throw new CHttpException(400, 'Bad Request');
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

Yii 1.1 没有响应抽象,你需要使用http_response_code()来改变响应状态码:


$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();

$this->setOutputError($ex->getMessage());

$this->setOutputCode($code);


http_response_code(400);

或者,您也可以使用header(),但这比较棘手。


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 51 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信