I'm having a form with an element username
. There are two validators: NotEmpty
and StringLength
. The custom error messages for StringLength
are working, but somehow it does not use the custom error message for the NotEmpty
validator. In ZF1 the notEmpty validator was added automatically when making an element required which could be turned off. I can't find such an option in ZF2 and maybe my NotEmpty validator is not used because it was already added by the required flag!?
$inputFilter->add($factory->createInput(array(
'name' => 'username',
'required' => true,
'filters' => array(
array(
'name' => 'StringTrim'
),
),
'validators' => array(
array(
'name' => 'NotEmpty',
'options' => array(
'messages' => array(
NotEmpty::IS_EMPTY => 'Bitte geben Sie Ihren Benutzernamen ein.',
),
),
),
array(
'name' => 'StringLength',
'options' => array(
'min' => 3,
'max' => 45,
'messages' => array(
StringLength::TOO_SHORT => 'Der Benutzername muss mindestens 3 Zeichene lang sein.',
StringLength::TOO_LONG => 'Der Benutzername darf maximal 45 Zeichen lang sein.',
)
),
),
),
)));
The ZF2 Form, by default, adds validators for the different form elements automatically when creating them. To prevent the defaults from being added and only have your validators present, you need to add to the form constructor:
$this->setUseInputFilterDefaults(false);
This will prevent the Form object from adding those default validators. Now when you add your own NotEmpty, or any other element for that matter, validator with a custom message, that message is used instead of the default one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With