全局异常处理中如何获取验证规则里返回的信息

1. 运行环境

1). 当前使用的 Laravel 版本?

laravrl 8.8

文件地址:app/Exceptions/Handler.php

render方法中用$e->getMessage()获取到的信息并不是在验证规则里的验证信息,就像下图这个,验证规则返回的是账号或密码错误,这里用$e->getMessage()获取到的是The given data was invalid。如何在render方法中获取获取验证规则返回的信息?

全局异常处理中如何获取是哪个控制器出错的

全局异常处理中如何获取是哪个控制器出错的

<?php
namespace App\Exceptions;
class Handler extends ExceptionHandler
{
    public function render($request,Throwable $e)
    {
        $msg = [
            "title" => $title,
            "报错时间"  => date("Y-m-d H:i:s"),
            "接口地址"  => $request->getUri(),
            "错误原因"  => $e->getMessage(),
            "TOKEN" => $request->header("token"),
            "参数"    => json_encode($request->input()),
        ];
        return parent::render($request,$e);
    }
}
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

根据 ValidationException 的源码可以查到, 存在errors 方法可以获取到验证错误信息,但别的异常类不一定有这个方法,所以需要先判断是不是 ValidationException 异常,然后 $e->errors()

1年前 评论
houguang (楼主) 1年前
讨论数量: 6

根据 ValidationException 的源码可以查到, 存在errors 方法可以获取到验证错误信息,但别的异常类不一定有这个方法,所以需要先判断是不是 ValidationException 异常,然后 $e->errors()

1年前 评论
houguang (楼主) 1年前

判断 属于ValidationException

1年前 评论

请问这个写法是等同于下面的写法吗?
$username = request()->input('username');
$password = request()->input('password');
file

1年前 评论
houguang (楼主) 1年前
zerocoder (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!