编程语言
首页 > 编程语言> > PHP-Zend Framework 2-注释表单-绑定无效

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