laravel api 验证自定义消息

Posted

技术标签:

【中文标题】laravel api 验证自定义消息【英文标题】:laravel api validation custom message 【发布时间】:2020-07-18 06:29:11 【问题描述】:

我正在尝试为 laravel 中的验证编写自定义消息。 我在网上查了一下,看到一些帖子,其他人通过添加受保护的功能来解决同样的问题。我也将该函数添加到我的代码中,但它不起作用。这是我的代码 这是 myFormController.php

公共函数请求(RegistrationRequest $request) $validated = $request->已验证(); 返回$已验证; )

这是RegistrationRequest.php:

使用 Illuminate\Contracts\Validation\Validator;采用 照亮\Http\Exceptions\HttpResponseException;

公共函数授权() 返回真;

public function rules()

    return [
        'email' => 'required|email',
        'firstname' => 'required|string|max:20',
        'lastname' => 'required|string|max:50',
        'password' => 'required|min:8',
    ];
  protected function failedValidation(Validator $validator) 
throw new HttpResponseException(response()->json($validator->errors(), 422)); 

当这不起作用时,我使用了这个:

受保护的功能 验证失败(\Illuminate\Contracts\Validation\Validator $validator) 抛出新的 \Illuminate\Validation\ValidationException(response()->json($validator->errors(), 422));

请问我做错了什么?

【问题讨论】:

【参考方案1】:

如果您想要自定义消息,只需覆盖 messages 方法,您只需要返回一个包含 field_name => 'message' 键值对的数组

/**
 * Get custom messages for validator errors.
 *
 * @return array
 */
public function messages()

    return [
      'field_name.required' => 'field_name is requeired',
      'field_name.max' => 'max length should be something.'
    ];

【讨论】:

我收到了,错误代码 422 是导致问题的原因,我立即删除了一切正常

以上是关于laravel api 验证自定义消息的主要内容,如果未能解决你的问题,请参考以下文章

用户未经授权时的 Laravel 护照自定义错误消息和状态码

Laravel 验证自定义消息

Laravel 自定义验证消息参数

Laravel 5.3 自定义验证消息数组

Laravel Spark 中的自定义验证消息

Laravel 自定义验证消息