我想构建一个带有标签和输入的表单,但它们的类应该不同。下面的代码为具有相同属性的输入创建标签:
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="" >
最佳答案
如 documentation 中所述:
- attr : 一个键值数组,将在字段上呈现为 HTML 属性
- label_attr:一个键值数组,将在标签上呈现为 HTML 属性
您可以在 Twig 模板或表单构建器中设置这些属性:
Twig 模板:
对于 symfony 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'),
));
}
关于php - Symfony2,如何使表单标签类/属性与其输入不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10919619/