Mirage
Mirage

Reputation: 31548

How to change the label appearing in symfony 2 form templates

I have this in template

<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_widget(form) }}

The form is appearing as

fos_user_registration_form_username  --input box
fos_user_registration_form_email
fos_user_registration_form_plainPassword_first
fos_user_registration_form_plainPassword_second

But it want to have simple labels like Username , Email etc. How to do that

Upvotes: 1

Views: 382

Answers (2)

Ashton Honnecke
Ashton Honnecke

Reputation: 717

FOSUserBundle uses the translator system. You need to as seen in the docs here:

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/1.2.0/Resources/doc/index.md

Add this:

# app/config/config.yml
framework:
    translator: ~

To your config file (app/config/config.yml).

This will tell symfony to replace all the label values with the values found in the translator file (FOSUserBundle.en.yml). Then the form will always print "Username" instead of "fos_user_registration_form_username".

Upvotes: 0

skoop
skoop

Reputation: 198

You can parse the individual form fields instead of the form as a whole.

{{ form_widget(form.fos_user_registration_form_username) }}

In this way, you can parse a single form element. Make sure to end with

{{ form_rest(form) }} 

to output any not yet parsed fields (such as the csrf protection token).

using the above approach you can add your own labels to the fields.

Upvotes: 1

Related Questions