Pregunta

Tengo un esquema de base de datos en Symfony como esto:

Persona:
    actAs: { Timestampable: ~ }
    columns:
      primer_nombre:  { type: string(255), notnull: true }
      segundo_nombre: { type: string(255) }
      apellido:   { type: string(255), notnull: true }
      rut:         { type: string(255) }
      email:       { type: string(255) }
      email2:      { type: string(255) } 
      direccion:     { type: string(400) }
      ciudad:        { type: string(255) }
      region:      { type: string(255) }
      pais:     { type: string(255) }
      telefono:       { type: string(255) }
      telefono2:      { type: string(255) }
      fecha_nacimiento:   { type: date }

Alumno:
 inheritance:
    type:          concrete
    extends:       Persona
 columns:
  comentario:  { type: string(255) }
  estado_pago: { type: string(255) }

Alumno_Beca:
 columns:
  persona_id:   { type: integer, primary: true }
  beca_id: { type: integer, primary: true }
 relations:
  Alumno: { onDelete: CASCADE, local: persona_id, foreign: id } 
  Beca: { onDelete: CASCADE, local: beca_id, foreign: id } 

Beca:
 columns:
  nombre:        { type: string(255) }
  monto:      { type: double }
  porcentaje:  { type: double }
  descripcion: { type: string(5000) }

Como se ve, "alumno" tiene una herencia concreta de "persona". Ahora estoy tratando de crear accesorios para estas dos tablas, y no puedo hacer Doctrina para cargarlos. Me da este error:

  

SQLSTATE [23000]: restricción de integridad   violación: 1452 No se puede agregar o actualizar una   fila secundaria: una restricción de clave externa   falla (eat/alumno__beca, CONSTREÑIMIENTO   alumno__beca_persona_id_alumno_id   FOREIGN KEY (persona_id) REFERENCIAS   alumno (id) ON CASCADE DELETE)

¿Alguien sabe cómo escribir un accesorio para una mesa heredado de otra?

Gracias!

¿Fue útil?

Solución

No estoy seguro de si este es su único problema, pero cuando los accesorios de carga para tablas que tienen relaciones, las cargan individualmente en un orden que no viola sus restricciones de clave externa: primer padre, entonces ... no todo niño juntos. Un registro hijo no puede "legalmente" existir sin su padre, si usted ha definido sus relaciones de esta manera, o de lo contrario no cumple con la restricción.

Otros consejos

Symfony comenzado en las últimas semanas y tengo un problema hoy en día con estos ..

primer problema es que sus claves externas debe ser un número entero. no entero (3) .. No se debe escribir el tamaño de los campos si es una clave externa. Y también el código es correcto, esto es sólo una información.

segundo problema es, debe quitar que los índices de clave externa en la tabla de base de datos. si ya se ha creado, al insertar-SQL de nuevo da un error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top