我是一名有用的助手,可以为您翻译文本。
我在SO上读到了这个问题:“如何在Zend Framework2中禁用inArray验证器表单”,并试图找到答案,但无法找到任何方法来分离/删除
我可以获取验证器:
我在SO上读到了这个问题:“如何在Zend Framework2中禁用inArray验证器表单”,并试图找到答案,但无法找到任何方法来分离/删除
InArray
验证器。但是,InArray
只是一个验证器。那么如何从表单元素的验证器列表中删除一个验证器?我可以获取验证器:
$myElement = $form->getInputFilter()->get('city');
$validatorChain = $cityElement->getValidatorChain();
$validators = $validatorChain->getValidators();
也许可以使用验证器取消设置数组元素,我想要移除它,然后将结果数组传回到Input对象和表单元素。但这样做非常不优雅,肯定不是推荐的方式。
那么如何从表单元素中移除一个验证器?
$inputFilter = new InputFilter(); $inputFilter->remove($name);
另外,你是否使用$factory = new InputFactory();
这个例子? - Remi Thomas$formInputFilter = $form->getInputFilter(); $formInputFilter->remove('city'); $formInputFilter->add((new Zend\InputFilter\Factory())->createInput(array( 'name' => 'city', 'required' => true, )));
但接下来我需要在视图脚本中创建一个Input
。这样不太好。 - automatixpublic function __construct($cityRequired = false) { //... blabla $formInputFilter->add((new Zend\InputFilter\Factory())->createInput(array( 'name' => 'city', 'required' => $cityRequired, ))); // 或者 if($cityRequired){ // 这个验证器
}else{ // 另一个验证器 } } } - Remi Thomas