Laravel 记录表单请求验证实际错误消息的最简单方法

Posted

技术标签:

【中文标题】Laravel 记录表单请求验证实际错误消息的最简单方法【英文标题】:Laravel Easiest way to log the Form Request Validation actual error messages 【发布时间】:2021-01-04 16:19:31 【问题描述】:

我正在为客户从事 Laravel v6.18 项目。

现在当我尝试提交包含大量数据的表单时,随机出现如下错误:

[2020-09-17 10:05:23] local.ERROR: Illuminate\Validation\ValidationException: The given data was invalid. in [LaravelDir]\vendor\laravel\framework\src\Illuminate\Foundation\Http\FormRequest.php:130
Stack trace:
....

我知道这是为向最终用户隐藏实际错误而创建的一般错误消息,但我希望记录实际错误。

如果我想在不直接编辑供应商包的情况下记录这个实际错误,我必须重写,但我不知道要重写哪个类的哪个方法来记录实际的表单请求验证错误(表单字段验证失败)。

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

我建议在report 方法中的Handler 文件中执行此操作,您将检查ValidationException 然后像这样记录验证错误

if ($exception instanceof ValidationException) 
    Log::error("errors", $exception->errors());

【讨论】:

以上是关于Laravel 记录表单请求验证实际错误消息的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

DropzoneJS & Laravel - 输出表单验证错误

如何根据输入请求规则在 laravel 刀片中显示错误消息

表单请求验证中的 Laravel“独特”自定义消息验证

从 Laravel 的表单验证中获取纯错误消息?

怎么把laravel的表单验证信息改成中文

如何在 laravel 表单验证错误消息中给出自定义字段名称