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
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