在 laravel5 中,我在 app/Exceptions/Handler@render
函数中捕获了所有错误并且它工作正常。
代码如下,
public function render($request, Exception $e) {
$error_response['error'] = array(
'code' => NULL,
'message' => NULL,
'debug' => NULL
);
if ($e instanceof HttpException && $e->getStatusCode() == 422) {
$error_response['error']['code'] = 422;
$error_response['error']['message'] = $e->getMessage();
$error_response['error']['debug'] = null;
return new JsonResponse($error_response, 422);
}
}
return parent::render($request, $e);
}
但在 laravel5.1 中,当表单验证失败时,它会抛出 422
异常的错误信息。但它不是从 app/Exceptions/Handler@render
捕获,而是与 abort(422)
一起正常工作。
我该如何解决这个问题?
最佳答案
你可以简单地通过做来捕捉
public function render($request, Exception $e) {
if($e instanceof ValidationException) {
// Your code here
}
}
关于php - 表单验证异常未被 laravel 5.1 中的异常捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31217541/