禁用notInArray验证Zend框架2(Disable notInArray Validator

2019-08-02 04:27发布

是否有Zend框架禁用notInArray验证的方式2.所有在互联网上的信息显示如何在Zend框架1禁用notInArray验证,例如以这种方式

如果你不希望InArray校验可言,你可以,或传递虚假对元素创建registerInArrayValidator配置项来禁用该元素上调用setRegisterInArrayValidator(假的)这种行为。

在计算器的一个职位,可以发现这里

不幸的是,这不是在Zend框架2.可能所以,如果如果任何人有一个提示如何可以禁用。

Answer 1:

自2.2版本,Zend框架提供禁用InArray校验调用的能力:

$element->setDisableInArrayValidator(false);

或传递选项的元素:

'disable_inarray_validator' => false


Answer 2:

我有同样的问题,我所做的是前填充元素进行验证,例如:

$clientForm->get('city')->setValueOptions($options);
$clientForm->setData($post);

if ($clientForm->isValid()) {
  //
} else {
  //
}

这不禁notInArray valitador,但你可以欺骗它。



Answer 3:

我带着同样的情况:虽然我是搜索发现没有办法做到这一点,与创建我自己的选择表单元素,我会为你提供我的变化结束后,很多是通过AJAX填充我的HTML选择元素:

    /**
     * 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;
    }


Answer 4:

我发现这个在这个环节,我想我会发布它,因为我发现这是一个很好的解决方案.... http://samsonasik.wordpress.com/2012/10/01/zend-framework-2-extending-zendform-to -add选-multicheckbox-emaildate-textarea的-AND-RADIO-元件/

不要试图取消激活默认验证。 重值的选择选项使用setData前值。

$form->get('state_id')
     ->setOptions(
           array('value_options'=> $Newstatecollection)) ;

保存停用功能的混乱,如果你需要它在别处



Answer 5:

如果你根本不需要验证,加required => false的输入过滤器

    $this->add(array(
        'name' => 'your-elements-name',
        'required' => false,
    ));

工作对我来说..



文章来源: Disable notInArray Validator Zend Framework 2