I am having a form and I have an array of input fields for video urls, now when I validate form if I have multiple invalid fields with video urls, I get the same message for eac
To use a custom messages from outside the validation language file, you can use it this way:
$messages = ['username.required' => 'customeError'];
$validator = \Validator::make(
$data,
['username' => 'required'],
messages
);
You can just pass an array of your custom messages as the third parameter as I have used it above. Hope this helps.
For laravel 7.x, I have found the following solution. You can basically use 'field.rule' => 'message'
public function rules()
{
return [
'user.*.firstname' => 'string|required',
];
}
And then in the messages (I use a FormRequest for all requests):
public function messages()
{
'user.*.firstname.required' => 'Firstname of the user is required',
}
You can also pass a translation string like 'passwords.user'
to the message.
I think this will help you if you are using "name=location[]" this in your view page.
for ($i = 0; $i <= sizeof($location); $i++) {
$this->validate($request,
[
// set the rules
'location.'.$i => 'required',
'contact_no.'.$i => 'required',
'email.'.$i => 'required|email',
],
[
// set your custom error messages here
'location.'.$i.'.'.'required' => 'Contact no. is required',
'contact_no.'.$i.'.'.'required' => 'Contact no. is required',
'email.'.$i.'.'.'required' => 'Email is required',
'email.'.$i.'.'.'email' => 'Please enter valid email address'
]);
}
'external_media.*.required' => 'active_url',