我想在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');
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()
,但这比较棘手。