如何禁用 Zend\Element\Select 的 inArray 验证器?我无法删除此标准验证器选择元素。
编辑:
我想要做的是用 ajax 填充一个如此动态的选择元素。这样 inArray 就会丢失参考字段值。
有谁知道用ajax填充这个元素的正确方法是什么?
如何禁用 Zend\Element\Select 的 inArray 验证器?我无法删除此标准验证器选择元素。
编辑:
我想要做的是用 ajax 填充一个如此动态的选择元素。这样 inArray 就会丢失参考字段值。
有谁知道用ajax填充这个元素的正确方法是什么?
从 2.2 版开始,Zend Framework 提供了禁用 inArray 验证器调用的功能:
$element->setDisableInArrayValidator(false);
或将选项传递给元素:
'disable_inarray_validator' => false
实际上,此时似乎无法禁用验证器;但是,您可以覆盖 select 元素,以便能够删除此特定情况的验证器:
use Zend\Form\Element\Select;
class MySelect extends Select {
public function getValidator() {
return $this->validator;
}
}
基本上,当前选择元素的关键问题是,如果验证器不存在;它会创建它。您在这里的另一个选择是手动设置验证器;您可能应该做的是手动创建一个 InArrayValidator 并使用来自您的 AJAX 调用的潜在选项填充它。在这种情况下,您需要在上面添加一个 setter。