Validation 如何在Zend framework 2中使用没有表单类的InputFilter

Validation 如何在Zend framework 2中使用没有表单类的InputFilter,validation,zend-framework2,zend-inputfilter,Validation,Zend Framework2,Zend Inputfilter,我的模型对象实现了InputFilterAwareInterface并具有getInputFilter()方法,该方法返回Zend\InputFilter\InputFilter实例 我不需要表单,我只需要验证数组中的元素。如何使用Zend\InputFilter\InputFilter在不创建表单类的情况下验证数组中的数据?希望代码是自解释的(setData设置数组,setValidationGroup检查所有元素,是否有效获得验证结果): 您能建议一种只验证集合中一行的方法吗?@yurisn

我的模型对象实现了InputFilterAwareInterface并具有getInputFilter()方法,该方法返回Zend\InputFilter\InputFilter实例


我不需要表单,我只需要验证数组中的元素。如何使用Zend\InputFilter\InputFilter在不创建表单类的情况下验证数组中的数据?

希望代码是自解释的(
setData
设置数组,
setValidationGroup
检查所有元素,
是否有效
获得验证结果):


您能建议一种只验证集合中一行的方法吗?@yurisnk您可以在调用
setValidationGroup()
时设置要验证的字段列表,只需对单个字段使用
->setValidationGroup('field_name')
,对上述示例中的字段集使用
->setValidationGroup(数组('field_name1','field_name2'))
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();
    /* ... */
}