我正在尝试为laravel中的验证编写一条自定义消息。我在网上查看了一些帖子,其他人通过添加受保护的功能来解决同样的问题。我还在代码中添加了该函数,但它不起作用。这是我的代码这是myFormController.php:
公共函数req(RegistrationRequest$request({$validated=$request->validated((;return$validated;(}
这是RegistrationRequest.php:
使用Illuminate\Contracts\Validation\Validator;使用Illuminate\Http\Exceptions\HttpResponseException;
公共函数authorize(({返回true;}
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)); }
当这不起作用时,我使用了这个:
受保护的函数failedValidation(\Illuminate\Contracts\Validation\Validator$validator({抛出新的\Illuminate\Validation\ValidationException(response((->json($validator->errors((,422((;}
请问我做错了什么?
如果您想要自定义消息,只需覆盖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.'
];
}