Reputation: 23466
I've got the following problem. I wrote (based on the tutorial) a form validation. The text fields work just fine but the integer field behave odd.
This is my validator:
$inputFilter->add($factory->createInput(array(
'name' => 'zip',
'required' => false,
'filters' => array(
array('name' => 'Int'),
),
)));
It lies within my Entity.php like the other filters. The odd thing is that this one accepts not even a string but ignores the required
when I set it to true
. I tried to replace Int
with Digits
which then causes the form to accept required
but still accepts strings.
Any ideas? Thanks!
Upvotes: 5
Views: 11111
Reputation: 21
array(
'name' => 'not_empty',
),
array(
'name' => 'Digits',
), array(
'name' => 'Between',
'options' => array(
'min' => 0,
'max' => 1,
),
),
Upvotes: 1
Reputation: 481
Try using the Between validator:
$inputFilter->add($factory->createInput(array(
'name' => 'zip',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
'validators' => array(
array(
'name' => 'Between',
'options' => array(
'min' => 1,
'max' => 1000,
),
),
),
)));
Upvotes: 10
Reputation: 5371
this is a old topic but i should mention that Filters
don't cause validation errors, they work in background and do their jobs silently .
for example Int
filter will remove any non-integer from the input , so when you do $form->getData()
the field with the Int
filter will only have integer values and 0 if its empty.
Upvotes: 3