Zend Framework 2 Form和InputFilter重新调整不同的值

时间:2013-12-25 10:55:14

标签: php zend-framework zend-framework2 zend-form zend-inputfilter

我有一个名为parameter的元素(选择)。问题是在验证时会返回如下错误:

The input was not found in the haystack

我知道这是由InArray Validator返回的。但是,当输入有效时,如何发生这种情况。所以,我试图检查表单元素和inputfilter。所以,我做了:

print_r($form->get('parameter')->getValue()); // returns frequency  
print_r($form->getInputFilter()->get('parameter')->getValue()); // returns 0

我只是无法理解,为什么他们会回归不同的价值观?

以下是完整代码:

$postData = $request->getPost()->toArray();

$form->setData($postData);

print_r($form->get('parameter')->getValue());

if ($form->isValid()) {
    $alarm->exchangeArray($form->getData());
    $this->getAlarmMapper()->save($alarm);
    $changesSaved = true;
}
print_r($form->getInputFilter()->get('parameter')->getValue());

1 个答案:

答案 0 :(得分:0)

据我所知,如果验证失败,你的过滤器根本不会返回一个值,这就是它返回0的原因。所以你应该查看验证内部,为什么它无法验证。