【发布时间】:2015-01-21 08:30:07
【问题描述】:
在我的 formType 上,我添加了另一个子表单
// ParentFormType
$builder->add('children', 'collection', array(
'type' => new ChildFormType(),
'prototype' => true,
'allow_delete' => true,
'allow_add' => true,
));
// ChildFormType
$builder->add('age', 'text', array(
'required' => true));
当我尝试将表单保存为 foreach 子级并设置父级时,有没有办法避免这种 foreach。
$em = $this->get('doctrine.orm.entity_manager');
/** This foreach I want to avoid */
foreach ($parent->getChildren() as $child) {
$child->setParent($parent);
}
$em->persist($parent);
$em->flush();
这是来自 Parent 的 ORM-XML:
<one-to-many field="children" target-entity="Client\Bundle\WebsiteBundle\Entity\Children" mapped-by="parent">
<cascade>
<cascade-persist />
</cascade>
</one-to-many>
这是来自 Parent 的 ORM-XML:
<many-to-one field="parent" target-entity="Client\Bundle\WebsiteBundle\Entity\Parent" inversed-by="children">
<join-columns>
<join-column name="idParents" referenced-column-name="id" on-delete="CASCADE" nullable="false" />
</join-columns>
</many-to-one>
【问题讨论】:
标签: php symfony doctrine-orm doctrine