我的路线定义为:
$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错误响应中报告了两个例外 - PDOException
和QueryException
。因此,要获取自定义错误消息,我将以下代码放在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);
}