我想建立与标签和输入的形式,但是类人应该是不同的。 下面的代码生成与同一ATTR输入标签:
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('hours', null ,
array('attr'=>
array(
'placeholder'=>'Working Hours',
'class'=>'ui-spinner-box') ) )
}
在我上面的代码的ui-spinner-box
会为标签和输入输出。 它甚至会把占位符,它的标签。
那么如何使创建attr
分别为标签,这样我可以输出类似下面:
<label class="MYCLASSFOR_LABEL" for="input_id">Hours</label>
<input class="MYCLASSFOR_INPUTS" type="text" id="input_id" name="" value="" >
作为中提到的文档 :
- ATTR:将被呈现为HTML键值阵列上的字段属性
- label_attr:将被呈现为HTML键值阵列在标签上的属性
您可以在树枝模板或表单生成的属性:
嫩枝模板:
为symfony1.2 2.1和较新的用途:
{{ form_label(form.hours, null, {'label_attr': {'class': 'foo'}}) }}
在传统的symfony 2.0它使用的是
{{ form_label(form.hours, { 'label_attr': {'class': 'MYCLASSFOR_LABEL'} }) }} {{ form_widget(form.hours, { 'attr': {'class': 'MYCLASSFOR_INPUTS'} }) }}
表单生成器
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('hours', null, array(
'label_attr' => array('class' => 'MYCLASSFOR_LABEL'),
'attr' => array('class' => 'MYCLASSFOR_INPUTS'),
));
}
这可能是新的,但有一个简单的方法,现在做到这一点:
$builder
->add('hours', null , array(
'attr'=>
array(
'placeholder'=>'Working Hours',
'class'=>'MYCLASSFOR_INPUTS')
) ,
'label_attr' => array(
'class' => 'MYCLASSFOR_LABEL'
)
);
你要找的选项label_attr
。
这对我的作品在Symfony的2.3:
{{ form_row(form.hours, { 'label': 'Hours:'
,'label_attr': {'class': 'MYCLASSFOR_LABEL'}
,'attr': {'class': 'MYCLASSFOR_INPUTS'}
}
)
}}
以上是不再是正确的,在我用它的背景下,至少。 在Symfony的2.1的解决方案是:
{{ form_label(form.item, label|default(null), { 'label_attr': { 'class': 'MYCLASS' } }) }}