一种形式-加到两个表中

| 我如何在Symfony 1.4和Doctrine中制作一种表格,将数据添加到两个表中? 一个表和模块的默认Symfony生成形式。在什么时候我可以对其进行编辑并添加自己的字段? http://www.symfony-project.org/jobeet/1_4/Doctrine/zh/03 产生。 我想例如添加具有新类别的字段。
# config/doctrine/schema.yml
JobeetCategory:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(255), notnull: true, unique: true }

JobeetJob:
  actAs: { Timestampable: ~ }
  columns:
    category_id:  { type: integer, notnull: true }
     (...)
    expires_at:   { type: timestamp, notnull: true }
  relations:
    JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs } 
此表单仅添加ID JobeetJob。我如何也可以添加到JobeetCategory?     
已邀请:
        您可以在JobeetJob表单中嵌入JobeetCategory关系。这将使您能够创建工作和类别。寻找sfForm类的`embedRelation()̀方法。     
        您应该在模型中覆盖save方法(在JobeetJob模型中可以这样说)。并将两个模型保存在事务中。下面我保存到产品和复合产品表。但不要忘记,保存方法应具有2个功能:插入和更新
public function save(Doctrine_Connection $conn = null){
  try {
      $conn->beginTransaction();

      $isNew = $this->isNew();         
      parent::save($conn); #Save Product

      $modelName = $this->moduleArray[$moduleName];

      $productId = $this->getId();

      if($isNew){ #CREATE new Composite Product and set Product ID and Module Name to it.

          $cp = new CompositeProduct();
          $cp->setRelatedModelID($productId);
          $cp->setRelatedModelName($modelName);
          $cp->setTitle($this->getTitle());
          $cp->save();

      }else{# UPDATE the Composite Product

          $query = Doctrine_Core::getTable(\'CompositeProduct\')
                                ->createQuery(\'cp\')
                                ->where(\'cp.relatedmodelname = ?\',  $modelName)
                                ->andWhere(\'cp.relatedmodelid = ?\', $productId);
          $cp = $query->fetchOne();

          $cp->setTitle($this->getTitle());
          $cp->save();
      }

      $conn->commit();
  }catch(Doctrine_Exception $e){
      $conn->rollback();
  }
}     

要回复问题请先登录注册