我的模型对象实现了InputFilterAwareInterface接口,并具有getInputFilter()方法,该方法返回Zend\InputFilter\InputFilter实例。
在这种情况下,我不需要表单,只需验证数组中的元素。如何在不创建表单类的情况下使用Zend\InputFilter\InputFilter验证来自数组的数据?
我的模型对象实现了InputFilterAwareInterface接口,并具有getInputFilter()方法,该方法返回Zend\InputFilter\InputFilter实例。
在这种情况下,我不需要表单,只需验证数组中的元素。如何在不创建表单类的情况下使用Zend\InputFilter\InputFilter验证来自数组的数据?
setData
设置您的数组,使用setValidationGroup
检查所有元素,使用isValid
获取验证结果:use \Zend\InputFilter\InputFilterInterface;
/* ... */
/** @var $data array */
/** @var $filter InputFilterInterface */
$filter = $this->getInputFilter();
$isValid = $filter->setData($data)
->setValidationGroup(InputFilterInterface::VALIDATE_ALL)
->isValid();
if (!$isValid)
{
$errorMessages = $filter->getMessages();
/* ... */
}
setValidationGroup()
时设置要验证的字段列表,只需使用->setValidationGroup('field_name')
来验证单个字段,或者使用->setValidationGroup(array('field_name1', 'field_name2'))
来验证一组字段。以上示例中。 - Denis Ryabov