我有这个 M:N 设置和一些表。这是 MySQL Workbench 的 ERD 的屏幕截图:
proyectos
我是为,centros
和unidades
使用任务生成的模块,doctrine:generate-admin
但现在我遇到了一个问题:我需要unidades
从centros
表单中添加,那些应该将 n:m 关系保存在unidades_has_centros
表中。我把这个放在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_has_centros
表中。这是我的schema.yml
(使用doctrine:generate-schema
任务生成):
Centros:
connection: doctrine
tableName: centros
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
descripcion:
type: string(250)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
ProyectosHasCentros:
local: id
foreign: centros_id
type: many
UnidadesHasCentros:
local: id
foreign: centros_id
type: many
Cliente:
connection: doctrine
tableName: cliente
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
nombre:
type: string(45)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
fecha_registro:
type: timestamp(25)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
pais:
type: string(45)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
Proyectos:
local: id
foreign: cliente
type: many
Proyectos:
connection: doctrine
tableName: proyectos
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
nombre:
type: string(150)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
pais:
type: string(45)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
estado:
type: integer(1)
fixed: false
unsigned: false
primary: false
default: '0'
notnull: true
autoincrement: false
cliente:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
relations:
Cliente:
local: cliente
foreign: id
type: one
ProyectosHasCentros:
local: id
foreign: proyectos_id
type: many
ProyectosHasCentros:
connection: doctrine
tableName: proyectos_has_centros
columns:
proyectos_has_centros_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
proyectos_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
proyectos_cliente:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
centros_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
relations:
Proyectos:
local: proyectos_id
foreign: id
type: one
Centros:
local: centros_id
foreign: id
type: one
Unidades:
connection: doctrine
tableName: unidades
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
descripcion:
type: string(250)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
UnidadesHasCentros:
local: id
foreign: unidades_id
type: many
UnidadesHasCentros:
connection: doctrine
tableName: unidades_has_centros
columns:
unidades_has_centros_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
unidades_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
centros_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
relations:
Unidades:
local: unidades_id
foreign: id
type: one
Centros:
local: centros_id
foreign: id
type: one
有什么建议吗?