php - 表单验证异常未被 laravel 5.1 中的异常捕获?

标签 php laravel exception laravel-5 laravel-5.1

在 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/

相关文章:

PHP MYSQL 数据库类 - 获取 mysql_fetch_assoc 方法移动到下一条记录

php - Laravel 作业链

php - Blade foreach 将输出转换到对象

java - 关于java中的异常捕获

flutter - Dart throw 和重新 throw 有什么区别?

php - 根据设定的概率选择用户

php - Web 浏览器是否以不同方式缓存 HTML 文件和 PHP 生成的文件?

php - 具有两个 ID 字段的 MySQL 主键

php - 更改要从数据库中获取的列的名称

exception - 吞噬 IObservable 异常