Doctrine 如何使用symfony管理生成器、条令和M:N关系

Doctrine 如何使用symfony管理生成器、条令和M:N关系,doctrine,symfony1,symfony-1.4,Doctrine,Symfony1,Symfony 1.4,我有一些表的M:N设置。以下是MySQL工作台的ERD屏幕截图: 我是使用原则:生成管理任务为proyectos、centros和unidades生成模块的,但现在我遇到了一个问题:我需要从centros表单添加unidades中的unidades\u has\u centros表中保存n:m关系。我把它放在CentrosForm: public function configure() { $this->widgetSchema['unidad'] = new sfWidget

我有一些表的M:N设置。以下是MySQL工作台的ERD屏幕截图:

我是使用
原则:生成管理
任务为
proyectos
centros
unidades
生成模块的,但现在我遇到了一个问题:我需要从
centros
表单添加
unidades
中的
unidades\u has\u centros
表中保存n:m关系。我把它放在
CentrosForm

public function configure() {
    $this->widgetSchema['unidad'] = new sfWidgetFormDoctrineChoice(array('model' => 'Unidades', 'add_empty' => 'Seleccione una unidad', 'multiple' => true));
    $this->validatorSchema['unidad'] = new sfValidatorPass();
}
显示控件,但当我保存数据时,不会将任何内容保存到
unidades\u has\u centros
表中。这是我的
schema.yml
(使用
原则:生成schema
任务生成):


有什么建议吗?

您还应该覆盖表单的保存方法。比如:

public function save(){
  $object = parent::save($con);

  UnidadesHasCentrosPeer::saveItems($this->values['unidad'], $object); 
}
在saveItem方法中,您应该定义创建UnidadesHasCentros对象的逻辑

public function save(){
  $object = parent::save($con);

  UnidadesHasCentrosPeer::saveItems($this->values['unidad'], $object); 
}