html-formhandler-model-dbic
html-formhandler-model-dbic copied to clipboard
use $field->get_message('unique') instead of $field->uniqe_message
According to the HTML::FormHandler::Field document, the unique message is set by
messages => { required => '...', unique => '...' }
eg:
has_field 'id' => (
type => 'Text',
required => 1,
accessor => 'username',
unique => 1,
messages => {
required => 'username is required',
unique => 'This user name is already taken'
},
);
However, setting unique message dose not set $field->unique_message, then in this TraitFor::Model::DBIC(line 262), the unique message we get every time is "Duplicate value for [_1]". By using get_message('unique'), we can get the correct message.
return $self->unique_messages->{$constraint} ||= "Duplicate value for [_1] unique constraint" also suffers from the same problem, I did not dig into this part, so maybe there should be another fix.