Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Guardar con un solo botón datos en dos tablas

3 de julio de 2015

Tengo una duda: tengo dos tablas; tabla Pais con sus campos (idpais, nombre, abreviatura) y tengo la tabla provincia con sus campos (idprovincia, idpais, nombre, abreviatura).

Bueno se sabe que tiene una relación, ¿cómo hago para hacer una vista con los formularios de país y abajo el de provincia? O sea, el usuario crea el país y abajo crea las provincias de ese país. Pero el problema en si es que solo quiero hacer un boton que guarde los datos PERO provincia necesita el idpais guardado en ese momento en la parte de arriba de la vista.

¿Cómo hago para que primero guarde el país, luego me extraiga ese idpais guardado y quemarlo en el idpais que necesita mi provincia? El usuario no va a ver ningún idpais.

Gracias de antemano, espero alguien me salve.


Respuestas

#1

Antes de decirte cómo resolver este problema, me gustaría añadir una opinión personal: este tipo de formularios complejos que permiten modificar mucha información diferente a la vez acaban siendo un infierno de mantenimiento. Por eso la solución más sencilla en este caso sería dividir este formulario en dos pasos: por un lado creas los países y por otro lado, las provincias. Como ves, el problema se resuelve solo (aunque obviamente para los usuarios de la aplicación el proceso es un poco más costoso).

Respecto al problema en sí, lo que tienes que hacer es "embeber una colección de formularios dentro de otro formulario". Esto significa que tendrás dos formularios separados: un formulario para el país y otro para la provincia. Después, incluyes una colección de formularios de provincia dentro del formulario del país.

En este artículo de la documentación oficial de Symfony te explican paso a paso como hacerlo. Sólo tienes que reemplazar Task por Pais y Tag por Provincia.

@javiereguiluz

5 julio 2015, 13:53
#2

@javiereguiluz Gracias por la ayuda.

@piocarluis

7 julio 2015, 15:37