Mostrar solo un campo de una relación 1-N

36 views
Skip to first unread message

Arnau González

unread,
May 9, 2012, 6:33:20 AM5/9/12
to Symfony_barcelona
Buenos dias,

Estoy creando formularios con alguna que otra peculiaridad y no se
cómo resolver un caso concreto. A ver si alguien me da la mágica
solución.
Conceptualmente es muy sencillo, tengo un usuario que tiene una
relación 1-N con comentarios, y quiero un formulario donde aparezca
solo el último comentario, digamos que es el comentario de la semana.
Durante la semana el usuario puede modificar el comentario, con lo que
debería mostrarse como campo de texto, pero los comentarios anteriores
no tienen que verse en este formulario.
Lo único que consigo por ahora es un campo select con los comentarios
existentes, lo qual no es lo que necesito.

¿Alguna idea?

Gracias

Ricard Clau

unread,
May 9, 2012, 6:51:08 AM5/9/12
to symfony_...@googlegroups.com
Hola Arnau

Si he entendido bien, necesitas algo así como un form embedido dentro de otro form, no? Y que además lo que embedes no sea toda la relación en cascada sino un filtro de esa relación.

Para embedir forms dentro de forms, deberías mirarte el cookbook http://symfony.com/doc/current/cookbook/form/form_collections.html

Y para el filtrado, por lo menos en el caso de las combos, se consigue usando un tipo "entity" en el form y construyendo ahí la query que necesites


Espero que te sirva para ver por dónde van los tiros!

Arnau González

unread,
May 9, 2012, 7:03:43 AM5/9/12
to Symfony_barcelona
Al tratarse de algo mas simple pensaba que no haría falta utilizar los
form collections, pero ya veo que no jeje.
Bien voy a probar y ya comento la solución cuando la encuentre.

Gracias

On 9 mayo, 12:51, Ricard Clau <ricard.c...@gmail.com> wrote:
> Hola Arnau
>
> Si he entendido bien, necesitas algo así como un form embedido dentro de
> otro form, no? Y que además lo que embedes no sea toda la relación en
> cascada sino un filtro de esa relación.
>
> Para embedir forms dentro de forms, deberías mirarte el cookbookhttp://symfony.com/doc/current/cookbook/form/form_collections.html
>
> Y para el filtrado, por lo menos en el caso de las combos, se consigue
> usando un tipo "entity" en el form y construyendo ahí la query que necesites
>
> http://symfony.com/doc/current/reference/forms/types/entity.html
>
> Espero que te sirva para ver por dónde van los tiros!
>

Oriol Jiménez

unread,
May 9, 2012, 7:17:22 AM5/9/12
to symfony_...@googlegroups.com

Usando el tipo entity puedes pasar la clase en cuestión y la propiedad, o usar el query_builder, para filtrar y sólo enseñar el último comentario. Aunque lo malo es que por defecto usa select, radio o check para visualizar.

La solución rápida, aunque (muy) fea, para usar un text/textarea podría ser añadir métodos get/set a la entity del usuario para gestionar el último comentario.

Mejor embedir forms dentro de forms.

Salu2

Jon Segador

unread,
May 9, 2012, 7:17:19 AM5/9/12
to symfony_...@googlegroups.com
Hago un poco de autobombo, justo ayer escribí un post en mi blog sobre como crear un combo utilizando el tipo "entity" en el formulario:
http://jonsegador.com/2012/05/desplegable-select-relacion-entre-entities-formulario-symfony2/

Faltaría indicar el query_builder con la consulta que quieras ejecutar.

Ya no contarás :)



El 9 de mayo de 2012 13:03, Arnau González <arn...@gmail.com> escribió:

Arnau González

unread,
May 9, 2012, 2:20:04 PM5/9/12
to Symfony_barcelona
He estado estudiando las dos opciones propuestas. Posiblemente en otro
formulario parecido tenga que añadir otro nivel de relación, es decir:
Usuario oneToMany Direcciones / Dirección manyToOne País.
En este caso entiendo que la opción de usar el tipo entity no sirve y
que lo correcto es embedir el tipo Dirección dentro del tipo Usuario.
Pero claro, aquí no puedo definirle el query_builder y pedir solo un
resultado. Como filtro?

On 9 mayo, 13:17, Jon Segador <jon...@gmail.com> wrote:
> Hago un poco de autobombo, justo ayer escribí un post en mi blog sobre como
> crear un combo utilizando el tipo "entity" en el formulario:http://jonsegador.com/2012/05/desplegable-select-relacion-entre-entit...
>
> Faltaría indicar el query_builder con la consulta que quieras ejecutar.
>
> Ya no contarás :)
>
Reply all
Reply to author
Forward
0 new messages