Ami*_*uli 13 symfony-forms symfony twig fosuserbundle
我正在使用FOSUserBundle来管理我的用户.为了注册用户,我重用了满足我需求的包的形式.不过,我需要设置我的字段的一些属性.这是通过像这样的小枝很容易做到的:
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': "Username"} }) }}
Run Code Online (Sandbox Code Playgroud)
现在,我的目标是在占位符上进行自动翻译,因此我提出了以下代码:
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': "{{'security.login.usernameplaceholder'|trans}}"} }) }}
Run Code Online (Sandbox Code Playgroud)
此前代码生成的输入占位符值等于{{'security.login.usernameplaceholder'| trans}}
为了摆脱这个问题,我尝试为此设置变量,但symfony产生了错误!
{% set usernameplaceholder = {{'security.login.usernameplaceholder'|trans}} %}
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': usernameplaceholder} }) }}
Run Code Online (Sandbox Code Playgroud)
有什么建议可以解决这个问题吗?
谢谢,
Tho*_*ire 29
在嫩枝,你不应该把{{内{{(同为{%); 把它想象成php标签.
以下应该有效
{% set usernameplaceholder = 'security.login.usernameplaceholder'|trans %}
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': usernameplaceholder} }) }}
Run Code Online (Sandbox Code Playgroud)
要么
{{ form_widget(form.username, { 'attr': {'class': "span12",
'placeholder': 'security.login.usernameplaceholder'|trans} }) }}
Run Code Online (Sandbox Code Playgroud)
添加占位符(或任何属性)的另一种方法是将options-array传递给$builder包含另一个Arrayattr的表单,该Array包含属性作为键值对.
// The parameters are column name, form-type and options-array respectively.
$builder->add('field', null, array(
'attr' => array(
'placeholder' => 'support.contact.titleplaceholder'
)
));
Run Code Online (Sandbox Code Playgroud)