The validator in my zend framework 2 are not working. Even as you can see required=>true works and shows me error if I pass an empty string. But the min and max length validations are not working and $form->isValid() just return true. Any help will be appreciated. I'm following this tutorial on Zend website. http://framework.zend.com/manual/2.3/en/user-guide/forms-and-actions.html
<?php
namespace AdminAuthentication\Model;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterInterface;
use Zend\InputFilter\Factory as InputFactory;
class Login implements InputFilterAwareInterface{
public $username;
public $password;
protected $inputFilter;
public function exchangeArray($data){
$this->username = isset($data['username']) ? $data['username'] : null;
$this->password = isset($data['password']) ? $data['password'] : null;
}
public function setInputFilter(InputFilterInterface $inputFilter){
throw new \Exception("Not Used!");
}
public function getInputFilter(){
if( ! $this->inputFilter ){
$inputFilter = new InputFilter();
$factory = new InputFactory();
$inputFilter->add($factory->createInput(array(
'name' => 'username',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim' ),
),
'validators' => array(
array('name' => 'StringLength',
'encoding' => 'UTF-8',
'min' => 5,
'max' => 35
)
)
)));
$inputFilter->add($factory->createInput(array(
'name' => 'password',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim' ),
),
'validators' => array(
array('name' => 'StringLength',
'encoding' => 'UTF-8',
'min' => 5
)
)
)));
$this->inputFilter = $inputFilter;
}
return $this->inputFilter;
}
}