2012-08-25 15 views
7

puoi aiutarmi a capire come personalizzare i messaggi di errore in un modulo con Symfony2? Voglio cambiare il layout HTML, aggiungendo div, classe, ecc ...Symfony2 personalizza i messaggi di errore del modulo

Leggendo la guida, dà un pezzo di codice da inserire in un file chiamato fields_errors.html.twig ma non dice dove mettere questo file e se è necessaria qualche configurazione aggiuntiva.

Qualcuno può aiutarmi?

+0

Si desidera modificare il messaggio di errore visualizzato o modificare il markup/rendering del messaggio? – weyandch

+0

Voglio cambiare il rendering, i tag HTML, le classi, ecc. – Bagbyte

risposta

1

È possibile personalizzare tutti i vostri messaggi di errore in una sola volta nel modello:

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

o singolarmente (se il campo è titolo per esempio)

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

devi mettere il modello nella cartella Resourses/views/ del pacchetto. Ad esempio,

{# 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 #} 

E poi nel modello pagina del modulo,

{% extends your:page:layout %} 

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

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

Per ulteriori opzioni e controllo di riferimento all'attuazione form theme cookbook entry e default field layout implementation

1

In symfony3 forma tema prima chiamata de a config.yml

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

Twig error.html.twig esempio

{% 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 %} 
Problemi correlati