PHP-Zend Framework 2-注释表单-绑定无效
作者:互联网
我正在使用AnnotationForms,并且将本教程中的标准编辑操作更改为使用Annotation而不是标准表单.
一切正常,除了$form-> bind()不填写值.表单字段保留为空.
我检查了应该绑定的变量,它已设置并且看起来不错.
这是我的动作:
$id = (int)$this->getEvent()->getRouteMatch()->getParam('id');
if (!$id) {
return $this->redirect()->toRoute('album', array('action'=>'add'));
}
$album = $this->getEntityManager()->find('Album\Entity\Album', $id);
$builder = new AnnotationBuilder();
$form = $builder->createForm(new \Album\Entity\Album());
$form->add(new \MyVendor\Form\MyFieldset());
$form->setBindOnValidate(false);
$form->bind($album);
解决方法:
好吧,这很简单!
诀窍是将您的对象转换为数组,并使用setData()而不是bind.
我找到了解决方案提示here.
您仍然需要bind()来保存更改.如果您将其保留,则不会发生任何错误,但也不会保存它.
$album = $this->getEntityManager()->find('Album\Entity\Album', $id);
...
$form->bind($album);
$form->setData($album->getArrayCopy());
标签:doctrine-orm,zend-framework2,zend-form,php 来源: https://codeday.me/bug/20191031/1976016.html