1
votes

This is code in /resource/lang/en/validation.php for custom error message for each specify element name and validation rule:

'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
],  

But this is my problem. I have:

  • Controller A -> element [title] -> require -> message 'AAA'
  • Controller B -> element [title] -> require -> message 'BBB'

But because some reasons, I don't want to custom error message in method messages() in Request class.

I need to custom message in /resource/lang/en/validation.php. How can I do that? Pseudo-code:

ControllerA.title.require => 'AAA'
ControllerB.title.require => 'BBB

' Please help me. And thank you so much.

1
As per my understanding I think this is not possible by the validiaiton.php because in custom array we have to provide the attribute_name , rule_name and then the specific message for that rule. And as per your question you have the same name of attribute that is title. So may first message will return every time. - Alankar More
If you want the different messages for different controller then create different request for each controller if you are using the laravel >= 5.1 and in that request class you can override the rules and messages() function. So the messages which you have wrote in request class those will return when the validation is applied. - Alankar More

1 Answers

0
votes

The easiest way to achieve custom messages is to specify your custom message at time of validation, e.g:

// custom messages
$messages = [ 'rule-name' => 'Custom message' ];

// validate input with rules, adding in custom messages
$validation = Validator::make( Input::all(), $rules, $messages );

The third parameter $messages in Validator::make lets you pass in an array of custom messages. You can even add in replacements, e.g.:

$messages = [ 'rule-name' => 'Custom message for :attribute should be :value' ];

You can even specify custom messages for different validation issues for the same field:

$messages = [
    'field.required' => 'Field is required',
    'field.size' => Field is too short' 
];