zend框架2 inArray元素验证器无聊

时间:2013-01-22 01:44:41

标签: zend-form zend-framework2

如何禁用Zend \ Element \ Select的inArray验证器? 我无法删除此标准验证器选择元素。

修改

我要做的是使用ajax填充select元素以实现动态。这样inArray就会失去参考字段值。

有谁知道用ajax填充这个元素的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

实际上看起来现在看起来不可能禁用验证器;但是,您可以覆盖select元素,以便能够删除此特定情况的验证器:

use Zend\Form\Element\Select;

class MySelect extends Select {
    public function getValidator() {
        return $this->validator;
    }
}

基本上当前select元素的关键问题是如果验证器不存在;它会创造它。您在这里的另一个选择是手动设置验证器;您可能正在做的是手动创建InArrayValidator并使用可能来自您的AJAX调用的潜在选项填充它。在这种情况下,您需要在上面添加一个setter。

答案 1 :(得分:0)

从版本2.2开始,Zend Framework提供了禁用inArray验证器调用的功能:

$element->setDisableInArrayValidator(false);

或将选项传递给元素:

'disable_inarray_validator' => false