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

Cómo funciona la opción inherit_data en los formularios

26 de junio de 2015

Hola, mi duda es con la función inherit_data de los formularios. En versiones anteriores a 2.3 esta opción se llamaba virtual.

Tengo una entidad llamada Persona. En ella tengo varios campos como son nombre, apellidos, teléfono, dirección de correo entre otras.

Existe la entidad Proveedor que se relaciona con Persona ya que un proveedor tiene contactos que son los mismos datos que personas.

También existe una entidad User con datos básicos como nombre de usuario, email y contraseña.

Ahora bien, estoy creando una entidad Perfil donde quiero recoger los datos de nombres, apellidos, teléfono, es decir los mismos datos que la entidad Persona y aquí vienen mis preguntas:

  1. Mi duda más grande es, ¿esto funciona como una relación OneToOne entre las entidades Persona y Perfil?
  2. En mi entidad Perfil ¿también tengo que definir las propiedades nombre, dirección, teléfono, etc, con sus Set y Get?
  3. Si tengo que definir las mismas propiedad de la entidad Persona en la entidad Perfil. ¿Qué ventajas ofrece inherit_data?

De antemano les agradezco la aclaración.


Respuestas

#1

Antes de contestar a tus preguntas, y aún no conociendo los detalles de tu aplicación, me atrevo a hacerte este comentario: creo que estás complicando demasiado las cosas. Creo que deberías tener una única entidad Usuario que reemplace a las tres entidades relacionadas actuales: Usuario, Persona, Perfil.

Respecto a tus preguntas:

  1. No entiendo muy bien esta pregunta. El inherit_data no tiene que ver con las entidades. Explicado de forma no muy técnica, el inherit_data te permite "hacer un copia+pega automático mediante los formularios de Symfony".
  2. Si. Desde el punto de vista de las entidades no cambia nada. Necesitas definir todas sus propiedades y todos sus getters y setters.
  3. La ventaja es que te ahorras definir dos veces los mismos campos en dos formularios diferentes. La idea es que, en vez de dos formularios con muchas cosas repetidas, el inherit_data te permite crear tres formularios: uno con las cosas comunes y los otros dos con las cosas diferentes de cada uno.

@javiereguiluz

26 junio 2015, 8:54
#2

Gracias @javiereguiluz por tu respuesta y me aclara el uso de inherit_data y con respecto a la aplicación resulta que no todas las personas que están en la tabla Persona son usuarios del sistema, pero si todos los usuarios del sistema deben llenar los datos de la tabla Persona.

En la tabla persona pueden ir datos del gerente de una empresa o de un vendedor que no son usuarios del sistema, pero se puede presentar el caso de que el vendedor se convierta en usuario de la aplicación y es ahi donde quiero usar los mismos datos que ya diligenció para crear su usuario. No se si como lo estoy haciendo sea la mejor forma, me gustaría saber tu opinión al respecto.

Gracias.

@miguelplazasr

26 junio 2015, 17:07