防止流明在API响应中显示默认的500内部服务器错误

时间:2017-06-08 11:23:01

标签: laravel api lumen

我的路线定义为:

$app->post('api/v1/Subject','SubjectController@createSubject');

在Controller中我有以下代码:

public function createSubject(Request $request){
    $Subject = Subject::create($request->all());
    return response()->json($Subject);
}

现在,当有人发送不正确的数据时,它会触发查询异常 - “SQLSTATE [23000]:完整性约束违规:”,这是理解的。

但是,我想要的是:我希望不希望Lumen在API响应中发送自己的默认错误页面。 我想捕获此错误事件并发送我自己的自定义响应。我该怎么做?

由于我找不到解决方案,我试图在/resources/views/errors/500.blade.php添加我自己的视图,但是Lumen甚至忽略了这个模板。请帮忙。理想情况下,我希望捕获此错误事件并发送我自己的自定义响应。

编辑:

Lumen在500错误响应中报告了两个例外 - PDOExceptionQueryException。因此,要获取自定义错误消息,我将以下代码放在function render()中的app\Exceptions\Handler旁边:

public function render($request, Exception $e)
{
    if($e instanceof PDOException){
        return response('It is my Custom response for PDOException that caused 500 error response.');
    }

    if($e instanceof QueryException){
        return response('It is my Custom response for QueryException that cuased 500 error response.');
    }

    return parent::render($request, $e);
}

0 个答案:

没有答案