Php Symfony表单句柄一对多为一对一
在数据库中,联系人和联系人地址之间的关系是一对多的关系 我希望处理symfony表单,而不使用集合类型,因为它应该是用户的一对一Php Symfony表单句柄一对多为一对一,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,在数据库中,联系人和联系人地址之间的关系是一对多的关系 我希望处理symfony表单,而不使用集合类型,因为它应该是用户的一对一 $builder->add( 'contactAddresses', new ContactAddressType() ); 出现以下错误: 属性“contactAddresses”或其中一个方法 “addContactAddress()”/“removeContactAddress()”, “setContactAddresses()”、“c
$builder->add(
'contactAddresses',
new ContactAddressType()
);
出现以下错误:
属性“contactAddresses”或其中一个方法
“addContactAddress()”/“removeContactAddress()”,
“setContactAddresses()”、“contactAddresses()”、“\uuu set()”或“\uu call()”
在类中存在并具有公共访问权限
“我的\Bundle\ContactBundle\Entity\Contact”
addContactAddress
方法存在于我的联系人实体中
public function addContactAddress(ContactAddress $contactAddress)
{
$this->contactAddresses[] = $contactAddress;
return $this;
}
试试这个:
$builder
->add('contactAddresses','entity', array(
'class'=>'yourBundle:ContactAddress',
'property'=>'propertyToDisplay'
));
是否使用CollectionType修复了它,并向其中添加了$contactAddress 建造商:
$builder->add(
'contactAddresses',
'collection', [
'entity' => new ContactTypeAddress()
]
);
控制器:
$contact = new Contact();
$contact->addContactAddress(new ContactAddress()); // This line did fix my problem
$this->createForm(new MyContactType(), $contact);
您应该按如下方式添加它:
$builder->add('contactAddresses',ContactAddressType()::class);
实体是一个选择,我需要呈现自己的子表单类型,它拥有字段。