laravel的表单请求验证在接口中使用除了使用failedValidation+HttpResponseException抛出错误还有其它方式吗?

下面这样是可以的,想知道还有其它方式吗。

   /**
     * api 请求
     * 验证失败,返回错误信息
     * @param Validator $validator
     * @return JsonResponse
     */
    protected function failedValidation(Validator $validator): JsonResponse
    {
        throw new HttpResponseException(new JsonResponse([
            'code' => xxx,
            'message' => $validator->errors()->first(),
        ]));
    }

目前不添加这段代码使用创建的表单请求会报404错误。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

App\Exceptions\Handler->render方法,添加如下的监听

// 验证器类的错误监听
if($exception instanceof ValidationException){
    return $this->errorJson($exception->validator->errors()->first());
}
2年前 评论
ononl (楼主) 2年前
小丑路人 (作者) 2年前
小丑路人 (作者) 2年前
讨论数量: 8
nff93

默认 Laravel 数据验证失败返回的是 422 错误,并不需要你重写这个方法啊

2年前 评论
ononl (楼主) 2年前
chowjiawei

file

2年前 评论
ononl (楼主) 2年前

App\Exceptions\Handler->render方法,添加如下的监听

// 验证器类的错误监听
if($exception instanceof ValidationException){
    return $this->errorJson($exception->validator->errors()->first());
}
2年前 评论
ononl (楼主) 2年前
小丑路人 (作者) 2年前
小丑路人 (作者) 2年前

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