Forms 在表单中手动保存多对多
我有一个模型,有3个表,多到1到多,如下所示 (缩写schema.yml) 将这些内容保存在自动生成的表单中是可以的。然而,在一个特殊情况下,我需要从PeerEngagementForm中分别保存nhi和种族 为了拯救nhi,我有以下工作:Forms 在表单中手动保存多对多,forms,symfony1,doctrine,save,Forms,Symfony1,Doctrine,Save,我有一个模型,有3个表,多到1到多,如下所示 (缩写schema.yml) 将这些内容保存在自动生成的表单中是可以的。然而,在一个特殊情况下,我需要从PeerEngagementForm中分别保存nhi和种族 为了拯救nhi,我有以下工作: function doSave($con=null){ ... if(isset($this->values['nhi'])){ $this->getObject()->getPeer()->setNhi($thi
function doSave($con=null){
...
if(isset($this->values['nhi'])){
$this->getObject()->getPeer()->setNhi($this->values['nhi']);
$this->getObject()->getPeer()->save();
}
...
但同样的技术不适用于
if(isset($this->values['ethnicity_list'])){
$this->getObject()->getPeer()->setEthnicity($this->values['ethnicity_list']);
$this->getObject()->getPeer()->save();
}
我得到的错误消息是,它需要一个集合
如何正确创建此集合,或者如何从顶级表单或操作中保存多对多关系?您是否尝试将$this->values['ocidentity_list']放入集合中
if(isset($this->values['ethnicity_list'])){
$ethnicityLists = new Doctrine_Collection('Ethnicity');
foreach($this->values['ethnicity_list'] as $ethnicityList){
$ethnicityLists->add($ethnicityList);
}
$peer = $this->getObject()->getPeer();
$peer->setEthnicity($ethnicityLists);
$peer->save();
}
应该有用,我也这么想。你有没有试过把$this->values['ocidentity\u list']放在一个集合中
if(isset($this->values['ethnicity_list'])){
$ethnicityLists = new Doctrine_Collection('Ethnicity');
foreach($this->values['ethnicity_list'] as $ethnicityList){
$ethnicityLists->add($ethnicityList);
}
$peer = $this->getObject()->getPeer();
$peer->setEthnicity($ethnicityLists);
$peer->save();
}
我想我也应该这样做