Hola a todos. Un saludo. Me pasa lo siguiente.
Debo tabular los datos de una colección de formularios pero con tablas. La cuestión es que form_table_layout
me crea la tabla de esta manera:
Pantallazo de la Colección de formularios
Y necesito que vayan una bajo la otra.
Quedo atento,
Respuestas
Cuando se añade un elemento en una colección de formularios, la plantilla usa el valor de la propiedad prototype
del widget de la colección para generar el HTML necesario. Lo más fácil sería mirar cómo es ese código HTML y modificar su aspecto con CSS.
Otra posible solución consiste en definir el valor de esa propiedad prototype
de la colección, aunque es algo que no te aconsejo en este caso sencillo porque no merece la pena.
La solución que te recomiendo es que utilices tu propia plantilla de formularios. Tranquilo porque es mucho más fácil y rápido de lo que parece. Lo primero, añade la siguiente instrucción en tu plantilla:
{% form_theme form _self %}
Esto hace que al mostrar cualquier formulario, primero se busque en tu plantilla el código Twig+HTML necesario para generar el widget. Si tu plantilla define ese "trozo" que está buscando el formulario, se utiliza. Si no existe, se utiliza el "trozo" por defecto que define el estilo form_table_layout.html.twig
.
Así que en este caso sólo tienes que redefinir el estilo del "trozo" que se utiliza para mostrar las colecciones y dejar que el formulario utilice para todo lo demás los estilos por defecto. Añade lo siguiente en tu plantilla y después, añádele todo el HTML que quieras para producir el resultado que estás buscando:
{%- block collection_widget -%} {% if prototype is defined %} {%- set attr = attr|merge({'data-prototype': form_row(prototype) }) -%} {% endif %} {{- block('form_widget') -}} {%- endblock collection_widget -%}
@javiereguiluz
Hola, encontré algo y me funciona. Les comparto
Se debe crear un macro dentro del formulario y crear el table. Ahí está toda la información....
Saludos!
@cristian_angulo
Gracias Javier!
@cristian_angulo