我正在尝试创建一个 symfony 2 表单“PersonType”,它有一个PersonType
集合字段,应该映射给定人的孩子。
我收到了这个错误,
{"message":"unable to save order","code":400,"errors":["This form should not contain extra fields."]}
这是我的Person
实体,
class Person
{
private $id;
/**
* @ORM\OneToMany(targetEntity="Person", mappedBy="parent", cascade={"persist"})
*/
private $children;
/**
* @ORM\ManyToOne(targetEntity="Person", inversedBy="children")
* @ORM\JoinColumn(name="orderitem_id", referencedColumnName="id", nullable=true)
*/
private $parent;
}
而我的类型,
class PersonType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('id')
->add('children', 'collection', array(
'type' => new PersonType()
))
;
}
更新:我已经看到问题是因为选项:
'allow_add' => true,
'by_reference' => false
不在类型中,我已将其删除,因为当我插入它们时,表单不会出现并且页面崩溃且没有错误。
我很困惑,因为这个错误,人们不能生孩子:/
有没有人已经面临同样的问题?(嵌套在自身之上的 formType)
ACUTALLY :我已将我的 personType 复制到 PersonchildrenType 以将其最后插入第一个...