I am using FOSUserBundle for managing my users. In order to register user, I reused the form of the bundle which meets my needs. Nevertheless, I needed to set some attributes of my fields. This is was done easyly by twig like this:
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': "Username"} }) }}
Now, my goal is to make automatic translation on my placeholder, so I proposed this code:
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': "{{'security.login.usernameplaceholder'|trans}}"} }) }}
This previous code produced an input with placeholder value equal to {{'security.login.usernameplaceholder'|trans}}
To get rid of this problem, I tried to set variable for that but symfony generated an error!!!
{% set usernameplaceholder = {{'security.login.usernameplaceholder'|trans}} %}
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': usernameplaceholder} }) }}
Is there any proposition to solve this problem?
Thanks,
In Twig you shouldn't put {{
within {{
(same for {%
); think of it as the php tag.
The following should work
{% set usernameplaceholder = 'security.login.usernameplaceholder'|trans %}
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': usernameplaceholder} }) }}
OR
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': 'security.login.usernameplaceholder'|trans} }) }}
Another way to add placeholders (or any attributes for that matter) is by passing an options-array to the form $builder
containing another Array attr
with attributes as key-value pairs.
// The parameters are column name, form-type and options-array respectively.
$builder->add('field', null, array(
'attr' => array(
'placeholder' => 'support.contact.titleplaceholder'
)
));
You can translate this way as well (Using symfony4) in twig: In a form placeholder wich would be written like this:
{'attr':{'placeholder': "Text to translate"}}
As for a placeholder in html wich would be written like this, you can translate this way:
<input placeholder="{{"Text to translate"|trans }}">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With