如何仅显示来自 Laravel 请求规则的一条错误消息

How to show only one error message from Laravel request rules

我正在使用 Laravel 请求在我的控制器中验证请求的数据

这是我的请求文件数据

我面临两个挑战

  1. 首先,我无法使用 static 函数
  2. return 自定义消息
  3. 我无法发送单个消息,因为我们使用 errors()->first() 发送控制器验证。

默认情况下是 return那样

但我想要像下面的 SS

我可以使用请求发送第一条消息吗?

如果您使用 laravel 8 或 9,您可以使用 FormRequest Class

的属性 $stopOnFirstFailure 来实现
class UpdateRequest extends FormRequest
{
    /**
     * Indicates whether validation should stop after the first rule failure.
     *
     * @var bool
     */
    protected $stopOnFirstFailure = false;

    //...
}

至于响应呈现,您需要在异常处理程序中添加自定义 render/format (App/Exceptions/Handler.php) 以捕获抛出的验证异常和 return 你需要的 json 格式。

-对于自定义消息

 Laravel Documents customizing-the-error-messages

-对于return条错误信息

    //In Request
    use Illuminate\Contracts\Validation\Validator;
    use Illuminate\Http\Exceptions\HttpResponseException;
    
    protected function failedValidation(Validator $validator)
    {
        throw new HttpResponseException(response()->json([
            'success' => false,
            'message' =>$validator->errors()->first(),
            'data' => null,
        ], 422));
    }