我正在尝试在ZF2中的类上运行验证。我已经按照Album示例了解验证器如何使用表单但是如何针对数组运行它?以下是示例中的代码。
$form->setInputFilter($album->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
在我的情况下,我没有表格,但有一系列数据,我想交换到班级。我该如何验证这个数组?如何运行isValid函数?我是否需要将数组绑定到新表单然后运行验证?似乎会有一种更清洁的方式。
非常感谢, M
答案 0 :(得分:3)
您可以创建一个扩展到Zend\InputFilter\InputFilter
use Zend\InputFilter\InputFilter;
class AlbumFilter extends InputFilter {
public function __construct()
{
$this->add(array(
'name' => 'title',
'required' => true,
'validators' => array(
array(
'name' => 'NotEmpty',
'options' => array(
'messages' => array(
NotEmpty::IS_EMPTY => 'Title is required.',
),
),
),
),
));
}
}
然后在你的控制器中:
$AlbumFilter = $this->getServiceLocator()->get('AlbumFilter'); // assuming you have added AlbumFilter in your Module.php
$AlbumFilter->setData($data);
if ($AlbumFilter->isValid()) {
// do something
}