0

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

编辑:

我想要做的是用 ajax 填充一个如此动态的选择元素。这样 inArray 就会丢失参考字段值。

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

4

2 回答 2

0

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

$element->setDisableInArrayValidator(false);

或将选项传递给元素:

'disable_inarray_validator' => false
于 2013-05-13T13:32:50.663 回答
0

实际上,此时似乎无法禁用验证器;但是,您可以覆盖 select 元素,以便能够删除此特定情况的验证器:

use Zend\Form\Element\Select;

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

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

于 2013-01-22T14:43:36.933 回答