在数据库中,contact和contactAddress之间的关系是一对多的。
我想处理symfony表单而不使用集合类型,因为它应该是用户的一对一。
$builder->add(
'contactAddresses',
new ContactAddressType()
);
出现以下错误:
属性" contactAddresses"也不是其中一种方法 " addContactAddress()" /" removeContactAddress()&#34 ;, " setContactAddresses()"," contactAddresses()"," __ set()"或" __ call()" 在课堂上存在并具有公共访问权限 "我\捆绑\ ContactBundle \实体\联系"
我的联系人实体中存在addContactAddress
方法。
public function addContactAddress(ContactAddress $contactAddress)
{
$this->contactAddresses[] = $contactAddress;
return $this;
}
答案 0 :(得分:1)
试试这个:
$builder
->add('contactAddresses','entity', array(
'class'=>'yourBundle:ContactAddress',
'property'=>'propertyToDisplay'
));
答案 1 :(得分:0)
使用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);
答案 2 :(得分:0)
您应该按如下方式添加它:
$builder->add('contactAddresses',ContactAddressType()::class);