Nuevo en Symfony 3.4: control de los temas de formulario globales

Los formularios de Symfony permiten aplicar uno o más temas de forma global a todos los formularios de tu aplicación. Si por ejemplo añades la siguiente configuración, todos los formularios se mostrarán con el diseño adecuado para Bootstrap 4:

# app/config/config.yml
twig:
    form_themes: ['bootstrap_4_layout.html.twig']

Lo único malo de estos temas globales es que son muy poco flexibles, ya que se aplican a todos los formularios de la aplicación sin excepciones. Por eso en Symfony 3.4 hemos mejorado la etiqueta form_theme de Twig para poder deshabilitar los temas globales.

Si quieres evitar que en un formulario específico se apliquen los temas globales, define los temas de ese formulario con la etiqueta form_theme y añade la palabra clave only al final:

{% form_theme form with ['common.html.twig', 'form/fields.html.twig'] only %}
 
{# ... #}

La palabra clave only hace que no se aplique ningún tema global, ni siquiera el tema base form_div_layout.html.twig. Así que asegúrate de que tus temas de formulario incluyen todos los bloques necesarios para mostrar los formularios (para ello, lo más fácil es que tu tema extienda el tema base con la etiqueta use de Twig en vez de extends).

Esta funcionalidad fue contribuida por Edi Modrić en el pull request #22610.

Fuente: New in Symfony 3.4: Disable global form themes

Comentarios

Publicada el

27 de octubre de 2017

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.