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 错误。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

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

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

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

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

file

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

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

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