Home > Enterprise >  Laravel make custom error validation messages
Laravel make custom error validation messages

Time:12-13

Greeting, this is my code and I need to make custom error messages for every rule

$validator = Validator::make($request->all(), [
        'name' => 'required|min:3|max:100',
        'phone' => 'required',
        'date' => 'required',
        'address' => 'required|min:3|max:100',
        'test' => 'required|min:3|max:100',
    ]);

if ($validator->fails()) {
    $errors = $validator->errors();
    return response()->json($errors);
}

CodePudding user response:

Its better to create a separate request for validation purpose

public function rules(): array
{
        return [
        'name' => 'required|min:3|max:100',
        'phone' => 'required',
        'date' => 'required',
        'address' => 'required|min:3|max:100',
        'test' => 'required|min:3|max:100',
    ]
}

public function messages(): array
{
      return [
                'name' => 'Please enter name'
      ];
}

CodePudding user response:

you can create your own custom validation messages in two ways:

1- in resources/lang/en/validation.php you can change the validation message for every rule

2- you can pass your custom message for each validation like this:

$validator = Validator::make($input, $rules, $messages = [
    'required' => 'The :attribute field is required.',
]);

you can check here for more information

specific to your question:

$messages = [
   'required' => 'The :attribute field is required.',
   'min' => ':attribute must be more than 3 chars, less than 100'
]
$validator = Validator::make($request->all(), [
        'name' => 'required|min:3|max:100',
        'phone' => 'required',
        'date' => 'required',
        'address' => 'required|min:3|max:100',
        'test' => 'required|min:3|max:100',
    ], $messages);
  • Related