2012-08-25 18 views
7

¿me puede ayudar a comprender cómo personalizar los mensajes de error en un formulario con Symfony2? Quiero cambiar el diseño HTML, agregando div, clase, etc ...Symfony2 personalizar los mensajes de error de formulario

Al leer la guía, da un fragmento de código para poner en un archivo llamado fields_errors.html.twig pero no dice dónde poner este archivo y si se necesita alguna configuración adicional.

¿Alguien me puede ayudar?

+0

¿Desea modificar el mensaje de error que se muestra, o cambiar el marcado/representación del mensaje? – weyandch

+0

Quiero cambiar la representación, las etiquetas HTML, las clases, etc. – Bagbyte

Respuesta

1

Puede personalizar todos los mensajes de error a la vez en su plantilla:

<div class="your_new_class"> 
    {{ form_errors(form) }} 
</div> 

o individualmente (si el campo es título por ejemplo)

<div class="your_new_class"> 
    {{ form_errors(form.task) }} 
</div> 
5

usted tiene que poner la plantilla en la carpeta Resourses/views/ de su paquete. Por ejemplo,

{# Vendor/YourBundle/Resourses/views/form_fields.html.twig #} 

{% extends 'form_div_layout.html.twig' %} 

{% block form_errors %} 
    {# your form error template #} 
{% endblock form_errors %} 

{# other customized blocks #} 

Y luego, en la plantilla de página de formulario,

{% extends your:page:layout %} 

{% form_theme form 'VendorYourBundle::form_fields.html.twig' %} 

{{ form_errors(form.field) }} 
{# ..... #} 

Para más opción y verificación de referencia y aplicación form theme cookbook entrydefault field layout implementation

1

En symfony3 primera llamada de forma temática en config.yml

twig: 
debug:   "%kernel.debug%" 
strict_variables: "%kernel.debug%" 
form_themes: 
    - 'YourBundle:FormTheme:error.html.twig' 

Twig error.html.twig ejemplo

{% block form_errors %} 
{% spaceless %} 
    {% if errors|length > 0 %} 
    <div class="alert alert-danger"> 
     {% for error in errors %} 
    <strong>{{ error.message }}</strong> 
     {% endfor %} 
    </div> 
    {% endif %} 
{% endspaceless %} 
{% endblock form_errors %} 
Cuestiones relacionadas