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

我想在Yii 1中返回带有HTTP错误代码的数据。所以我使用了以下方式来获取数据。


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

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

            $this->setOutputCode($code);

当我以这种方式使用它时,API 返回带有 200 错误代码的数据,如下所示

https://img4.mukewang.com/650d54710001c91906440212.jpg

但我想改变标题状态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');

https://img1.mukewang.com/650d547f0001762506350218.jpg

噜噜哒
浏览 73回答 1
1回答

MYYA

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(),但这比较棘手。
打开App,查看更多内容
随时随地看视频慕课网APP