Data binding inputfilter对象操作后未从对象更新ZF2表单数据

Data binding inputfilter对象操作后未从对象更新ZF2表单数据,data-binding,doctrine-orm,zend-form,zend-framework2,zend-inputfilter,Data Binding,Doctrine Orm,Zend Form,Zend Framework2,Zend Inputfilter,我有一个表单过滤器,它更改传递给它的值并返回这个新值。绑定实体后,对象将按预期使用新值更新,但当再次显示表单时,仍会显示旧数据(从表单传递) 在$form对象中,有两个数据集,$data(一个数组)和$object(实体)。。。绑定时,$data从$object获取值,处理输入筛选器时,$object从输入筛选器更新,再次显示表单时,$data显示(未从输入筛选器更新$object更改) 在确定有效性(从而运行输入筛选器)后,如何重新填充$data 现在,作为一种解决方法,我添加了一行:$for

我有一个表单过滤器,它更改传递给它的值并返回这个新值。绑定实体后,对象将按预期使用新值更新,但当再次显示表单时,仍会显示旧数据(从表单传递)

在$form对象中,有两个数据集,$data(一个数组)和$object(实体)。。。绑定时,$data从$object获取值,处理输入筛选器时,$object从输入筛选器更新,再次显示表单时,$data显示(未从输入筛选器更新$object更改)

在确定有效性(从而运行输入筛选器)后,如何重新填充$data


现在,作为一种解决方法,我添加了一行:$form->setData($form->getData(\Zend\form\FormInterface::VALUES\u as\u ARRAY));用新数据重新填充窗体。有没有其他方法(可能是自动的?)我没有遇到过这种行为,而你描述它的方式,听起来有点像一个bug。也许您可以尝试提供失败的测试用例,并在github上发布错误报告?
// $form->data == $entity Values (Original)
$form->bind($entity);
// $form->data updated to $formValues (from post)
$form->setData($formValues);
// $entity Values update to InputFilters & $formValues
if($form->isValid()) {
  // Saves the new $entity values
  $this->getEntityManager()->flush();
}
$response->setVariables(array(
  // $form->data shows $formValues but not updated InputFilter values 
  'form' => $form,
}