You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义Laravel验证返回的message属性?

自定义Laravel验证错误返回的顶层message属性

要修改验证错误时返回的顶层message字段格式(而非单个字段的错误消息),可以通过重写异常处理器中的invalidJson方法实现,具体步骤如下:

  1. 打开项目中的app/Exceptions/Handler.php文件
  2. 引入Illuminate\Validation\ValidationException类(如果尚未引入)
  3. 重写invalidJson方法,自定义message的生成逻辑

代码示例

<?php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Validation\ValidationException;

class Handler extends ExceptionHandler
{
    // 保留原有$dontReport和$dontFlash配置

    /**
     * 处理JSON请求的验证错误响应
     */
    protected function invalidJson($request, ValidationException $exception)
    {
        // 获取所有验证错误消息数组
        $allErrors = $exception->validator->errors()->all();
        $firstError = $allErrors[0];
        $remainingErrorCount = count($allErrors) - 1;

        // 自定义message格式,可根据需求自由调整文案与格式
        if ($remainingErrorCount > 0) {
            $customMessage = "{$firstError},另有{$remainingErrorCount}项错误";
        } else {
            $customMessage = $firstError;
        }

        return response()->json([
            'message' => $customMessage,
            'errors' => $exception->errors(),
        ], $exception->status);
    }
}

说明

  • invalidJson方法专门负责处理JSON请求的验证错误响应,只会影响API接口的错误返回格式
  • 通过$exception->validator->errors()->all()可以获取所有验证错误的数组
  • 你可以根据业务需求完全自定义message的拼接逻辑,比如调整提示文案、改变计数显示方式等

内容的提问来源于stack exchange,提问作者jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:20:50