Is there a way to disable notInArray Validator in Zend Framework 2. All the info on the internet shows how to disable the notInArray Validator in Zend Framework 1, for example i
I came with the same case : while i was populating my html select element via ajax after alot of searching found no way to do it , ending with creating my own select form element , I will provide you with my changes :
/**
* Provide default input rules for this element
*
* Attaches the captcha as a validator.
*
* @return array
*/
public function getInputSpecification()
{
$spec = array(
'name' => $this->getName(),
'required' => true,
//// make sure to delete the validators array in the next line
'validators' => array(
$this->getValidator()
)
);
return $spec;
}
I found this at this link and thought I would post it as I found it a great solution .... http://samsonasik.wordpress.com/2012/10/01/zend-framework-2-extending-zendform-to-add-select-multicheckbox-emaildate-textarea-and-radio-element/
don’t try to deactive the default validator. re-values the select options values before setData.
$form->get('state_id')
->setOptions(
array('value_options'=> $Newstatecollection)) ;
Saves the mess of deactivating the function if you need it elsewhere
I had the same problem and what i did is populate the element before validate it, for example:
$clientForm->get('city')->setValueOptions($options);
$clientForm->setData($post);
if ($clientForm->isValid()) {
//
} else {
//
}
This don't disable notInArray valitador but you can trick it.
If you don't need validation at all, add required => false
in InputFilter
$this->add(array(
'name' => 'your-elements-name',
'required' => false,
));
worked for me..
Since version 2.2, Zend Framework provide the ability to disable inArray validator calling:
$element->setDisableInArrayValidator(false);
or passing option to an element:
'disable_inarray_validator' => false