Tengo dos formularios embebidos dentro de un formulario, y necesito
hacer lo siguiente:
Guardar el formularioEmbebido1, para luego Guardar el Formulario
(principal)... la cuestion se complica con el formularioEmbebido2 ya que
la tabla que maneja este formulario necesita de algunos datos del
formulario principal. Entonces lo que intento hacer es predecir el id
que necesito para el formularioEmbebido2:
....
// FORMULARIOS EMBEBIDOS
$fiscalizacion_resultado = new FiscalizacionResultado();
$num_fiscalizacion = FiscalizacionPeer::doCount( new Criteria() );
$fiscalizacion_resultado->setFiscalizacionId( ($num_fiscalizacion +
1) );
$fiscalizacion_resultado->setInspeccionId( $request->getParameter('orden')->getId() );
$this->saveEmbeddedForms($con);
$forms = $this->getEmbeddedForms();
.....
Luego guardo el formulario principal.
Pero el problema es que parece no estar 'seteando' el FiscalizacionId,
porque me da el siguiente error:
Unable to execute INSERT statement. [wrapped: SQLSTATE[23000]: Integrity
constraint violation: 1452 Cannot add or update a child row: a foreign
key constraint fails (`indepabis/fiscalizacion_resultado`, CONSTRAINT
`fiscalizacion_resultado_FK_1` FOREIGN KEY (`fiscalizacion_id`)
REFERENCES `fiscalizacion` (`id`))]
Que estoy haciendo mal???
GRACIAS
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.
el error del mysql es claro, hay violacion de integridad referencial.
por que no guardan como es debido, primero el principal, obtienen el
id del objeto guardado y se lo establecen por default al segundo
formulario.
On 5 ene, 22:00, Claudio Brandolin <cgbrando...@gmail.com> wrote:
> Yo estoy teniendo teniendo mas o menos el mismo problema y no encuentro
> solucion al respecto. He probado varias cosas y no ha resultado nada. Si
> encuentro algo que funcione te lo comento.
> Gracias
>
> El 5 de enero de 2010 22:41, Germana Oliveira
> <germanaolivei...@gmail.com>escribió:
> > symfony-es+...@googlegroups.com<symfony-es%2Bunsu...@googlegroups.com>
y disculpen el comentario, pero de verdad que no he encontrada alguna
forma de cumplir con los requerimientos del desarrollo y que ademas se
adapte a la teoria.
Si pudieras decirme como guardo un formulario embebido a la vez, te lo
agradeceria mucho y resolveria mi problema
On 7 ene, 04:51, Claudio Brandolin <cgbrando...@gmail.com> wrote:
> Estuve probando y en symfony no tenes que setear el FiscalizacionId del
> hijo. El proceso de embeber el formulario hijo se hace en el config del
> form() y automaticamente el metodo save() guarda los formularios embebidor y
> asigna los id como corresponda.
>
> Siempre se debe guardar el formulario padre primero y luego los hijos, sino
> va a dar error y eso es inevitable.
>
> Lo que creo que es tu problema son "los datos" que necesitan las tablas
> hijas que estan en la tabla padre. Aca hay varias soluciones segun sean "los
> datos"
>
> si "los datos" son los Ids no te hagas problema porque symfony se arregla.
> si "los datos" son otra cosa, entonces deberias setear esos datos en los
> hijos luego que se graben en el padre.
>
> Espero haber sido claro.
>
> El 6 de enero de 2010 20:37, Germana Oliveira
> <germanaolivei...@gmail.com>escribió:
> > <symfony-es%2Bunsu...@googlegroups.com<symfony-es%252Buns...@googlegroups.com>
El formulario principal tiene (datos de tabla):
FISCALIZACION:
id
correlativo
fecha_inicio
persona_id
categoria_id
1er formulario embebido:
PERSONA:
id
identificacion
nombre
direccion
telefono
2do formulario embebido
FISCALIZACION_RESULTADO:
id
fiscalizacion_id
inspeccion_id
descripcion
resultado
El problema es que necesito primero guardar el 1er embebido para poder
tener el persona_id, luego el principal.... y alli es el problema que al
hacer saveEmbeddedForm salva ambos embebidos y entonces da el error con
fiscalizacion_id de FISCALIZACION_RESULTADO
Gracias
El caso es que en realidad no me interesa que el usuario sea el que
coloque la fecha, entonces en la mayoria de las tablas el campo fecha es
en realidad introducido por el sistema.