Ответ 1
Начиная с версии 2.2, Zend Framework предоставляет возможность отключить inArray validator:
$element->setDisableInArrayValidator(false);
или передать опции элементу:
'disable_inarray_validator' => false
Есть ли способ отключить notInArray Validator в Zend Framework 2. Вся информация в Интернете показывает, как отключить валидатор notInArray в Zend Framework 1, например, таким образом
Если вы вообще не хотите использовать средство проверки InArray, вы можете отключить это поведение либо путем вызова setRegisterInArrayValidator (false) в элементе, либо путем передачи false в конфигурационный ключ registerInArrayValidator при создании элемента.
Один из сообщений в stackoverflow можно найти здесь
К сожалению, это невозможно в Zend Framework 2. Поэтому, если кто-нибудь имеет подсказку, как это можно отключить.
Начиная с версии 2.2, Zend Framework предоставляет возможность отключить inArray validator:
$element->setDisableInArrayValidator(false);
или передать опции элементу:
'disable_inarray_validator' => false
У меня была такая же проблема, и что я сделал, это заполнить элемент перед его проверкой, например:
$clientForm->get('city')->setValueOptions($options);
$clientForm->setData($post);
if ($clientForm->isValid()) {
//
} else {
//
}
Это не отключает notInArray valitador, но вы можете обмануть его.
Я пришел с тем же случаем: в то время как я заполнял элемент html select через ajax после того, как много поисков не нашел способа сделать это, заканчивая созданием моего собственного элемента формы формы, я предоставит вам свои изменения:
/**
* 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;
}
Я нашел это по этой ссылке и подумал, что отправлю его, поскольку нашел это отличным решением.... http://samsonasik.wordpress.com/2012/10/01/zend-framework-2-extending-zendform-to-add-select-multicheckbox-emaildate-textarea-and-radio-element/
Не пытайтесь деактивировать валидатор по умолчанию. переопределяет значения параметров выбора перед setData.
$form->get('state_id')
->setOptions(
array('value_options'=> $Newstatecollection)) ;
Сохраняет беспорядок дезактивации функции, если вам это нужно в другом месте
Если вам вообще не нужна проверка, добавьте required => false
в InputFilter
$this->add(array(
'name' => 'your-elements-name',
'required' => false,
));
работал у меня..