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

Problema con relacion many-to-many + campos extra

6 de octubre de 2016

Hola,

Tengo una duda relacionada con una relación entre dos entidades. Lo que sería técnicamente una many-to-many con campos extra, por lo que he creado una entidad intermedia para solventarlo.

Simplificando al mínimo posible las entidades serían:

  • Cuestionario {id, nombre}
  • Pregunta {id, enunciado}
  • Relación {id, cuestionario_id, pregunta_id, orden}

Lo que intento hacer es que al insertar un cuestionario nuevo me aparezca también un listado con todas las preguntas existentes y así poder crear el cuestionario y vincular sus preguntas a la vez. En la entidad Cuestionario debería crear un ArrayCollection pero la duda me surge en qué debo vincularle, porque yo necesito un listado de preguntas pero en los ejemplos que he visto para SonataAdmin relacionan las dos entidades principales con la entidad relación.

Yo he tratado de hacer lo mismo creando el array preguntasRel[] y haciendo esa relación para el Admin de Cuestionario pero al estar vinculado a Relacion no me aparece un listado de preguntas sino un formulario embebido para crear los distintos objetos Relacion:

->add('preguntasRel', 'sonata_type_model', array(
    'by_reference' => false,
    'expanded' => true,
    'multiple' => true,
    'label' => 'Seleccionar Preguntas'
))

¿Cómo puedo vincular esta relación para obtener lo que busco?

Lo estoy desarrollando con SonataAdmin pero agradezco cualquier solución para Symfony. Luego ya me seguiré peleando en ese infierno en vida llamado "documentación de Sonata" para tratar de adaptarlo ;)

Gracias


Respuestas

#1

Me respondo a mí mismo porque he encontrado la solución y le puede resultar interesante a alguien.

En esta web lo explican perfectamente y han publicado el código de todas las clases que forman el many to mamny con campos extra

http://www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.html

Y tienen el proyecto entero en github

https://github.com/pmoubed/Symfony2Tutorial

@rcm_8

20 octubre 2016, 15:43