我正在通过Laravel 5.2构建我的应用程序作为API,我需要将所有类型的异常作为json,无论错误代码是什么。
我做了类似的事情:
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
return response([
'success' => false,
'error' => [
'code' => $e->getCode(),
'message' => $e->getMessage(),
],
], $this->convertExceptionToResponse($e)->getStatusCode());
}
并且它做了很多诀窍,但显然这不够好,因为如果我收到404错误,$e->getMessage
为空。
404错误回复示例:
{
"success": false,
"error": {
"code": 0,
"message": ""
}
}
以json的形式回复异常的最佳方式是什么?
答案 0 :(得分:1)
可能你应该尝试:
public function render($request, Exception $e)
{
return response(json_encode([
'success' => false,
'error' => [
'code' => $e->getCode(),
'message' => $e->getMessage(),
],
]), $this->convertExceptionToResponse($e)->getStatusCode())
->header('Content-Type', 'application/json');
}