Symfony1 如何在Symfony中从一个表单更新两个表?

Symfony1 如何在Symfony中从一个表单更新两个表?,symfony1,Symfony1,我有一个表单,我在表单类中添加了一个额外的sfWidgetFormTextarea小部件 我想通过更新与表单对应的字段的数据库来保存表单,但随后获取sfWidgetFormTextarea的值,并将其作为新行插入另一个表中,同时保存textarea值和为另一个表中保存的数据创建的id号 这听起来让人困惑,所以如果我把它放在上下文中,可能就不会那么复杂了。我的表格是关于病人验血的详细资料。用户还可以添加任何关于测试的注释。一份血液检测记录可以有多个注释。出于这个原因,我想用测试id将注释保存在另一

我有一个表单,我在表单类中添加了一个额外的sfWidgetFormTextarea小部件

我想通过更新与表单对应的字段的数据库来保存表单,但随后获取sfWidgetFormTextarea的,并将其作为新行插入另一个表中,同时保存textarea值和为另一个表中保存的数据创建的id号

这听起来让人困惑,所以如果我把它放在上下文中,可能就不会那么复杂了。我的表格是关于病人验血的详细资料。用户还可以添加任何关于测试的注释。一份血液检测记录可以有多个注释。出于这个原因,我想用测试id将注释保存在另一个表中,这样就可以检索一个测试的所有注释

我意识到这个额外的sfWidgetFormTextarea将破坏save函数,因为它将保存它,并且表中没有一个名为comment的字段,所以它不知道将这个textarea值保存到哪里。我是否应该从$request中删除注释值并将其插入注释表?我还需要知道它所涉及的TET的id思想,在save函数之前它不是锥形的


请帮帮我,我头疼

您可以手动保存表单,请检查下面的代码段

$this->form->bind($request->getParameter('formname'));
  if ($this->form->isValid()) {
      $arrValues = $this->form->getValues();

      //get dataobject base on criteria...
      $objTable1 = Table1Peer::getByField($arrValues['my_field']);

      if(is_object($objTable1)){
         $objTable1->setField($arrValues['my_field']);
         //update
         if($objTable1->save()){
            $objTable2 = new Table2();
            $objTable2->setPostId($objTable1->getId()); 
            $objTable2->setComment($arrValues['my_comment']);
            if($objTable2->save()){
              $this->redirect('@action_name');
              $this->getUser()->setFlash('success', 'comment saved');
            }else{
              $this->getUser()->setFlash('error', 'failed to save form, contact admin');
            }  
         }else{
           $this->getUser()->setFlash('error', 'failed to save form, contact admin');    
         }
  } 

我希望这有帮助,如果你能来,请告诉我……

t谢谢。在我实现它之前,我正在尝试解构它。什么是Table1peer?我已经在谷歌上搜索过了,没有任何解释。@Nicola,我知道这很旧,但是
Table1Peer
中的Table1是一个示例表,与
[example]Peer
类关联。我相信答案是针对推进的。