繁体   English   中英

Symfony2表单删除实体数据

[英]Symfony2 Form Dropping Entity Data

这个问题不是关于如何嵌入简单明了的实体的,我的问题是关于我所看到的并且无法调和的异常。

我有一个实体(联系人),对此具有“电子邮件”关系,并且希望能够在我的创建新方法中嵌入电子邮件。

因此,我执行通常的嵌入步骤:1)将我的收藏集添加到表单(contactType.php)

->add('emails', 'collection', array(
       'type' => new EmailType()
      ))

2)在Controller中,我添加一个新的空Email实体,并将其设置为表单的默认数据

$entity = new Contact();
$email = new Email();
$entity->addEmail($email);
$form->createForm(new ContactType(), $entity);

这是发生问题的地方,进入“ createForm”,我的$ entity有一个名为Emails的集合,出来的$ form是一个空白的ContactType,没有附加任何Email ...就好像defaultData被忽略了一样。

如果您已经看到此事或有任何想法为什么会发生这种情况,我希望您能提供一些意见。

我们已经修改了getter以返回一个关联数组,这似乎破坏了Form构建器,以下破坏了Form Builder:

 public function getContacts()
{
    $array = new ArrayCollection();
    $property = (is_array($this->contacts)) ? $this->contacts : $array;

    foreach($property as $entity)
    {
        $array[$entity->getType()->getName()] = $entity;
    }

    return $array;
}

基本的吸气剂就是

return $this->contacts; 

哪个可行,看来ArrayCollection()并不是我们想象的那样简单的关联数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM