Je voudrais construire un formulaire avec une étiquette et des entrées, mais leur classe devrait être différente. Le code ci-dessous crée l'étiquette pour l'entrée avec le même attr:
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('hours', null ,
array('attr'=>
array(
'placeholder'=>'Working Hours',
'class'=>'ui-spinner-box') ) )
}
Dans mon code au-dessus du ui-spinner-box
sera affiché pour l'étiquette et l'entrée. Il mettra même un espace réservé pour son étiquette.
Alors, comment le faire créer attr
pour l'étiquette séparément afin que je puisse produire quelque chose comme ci-dessous:
<label class="MYCLASSFOR_LABEL" for="input_id">Hours</label>
<input class="MYCLASSFOR_INPUTS" type="text" id="input_id" name="" value="" >
Comme mentionné dans la documentation :
Vous pouvez définir ces attributs dans le modèle twig ou dans le générateur de formulaires:
Modèle de brindille:
pour symfony 2.1 et une utilisation plus récente:
{{ form_label(form.hours, null, {'label_attr': {'class': 'foo'}}) }}
dans l'héritage symfony 2.0, il était
{{ form_label(form.hours, { 'label_attr': {'class': 'MYCLASSFOR_LABEL'} }) }}
{{ form_widget(form.hours, { 'attr': {'class': 'MYCLASSFOR_INPUTS'} }) }}
Générateur de formulaires
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('hours', null, array(
'label_attr' => array('class' => 'MYCLASSFOR_LABEL'),
'attr' => array('class' => 'MYCLASSFOR_INPUTS'),
));
}
C'est peut-être nouveau, mais il existe un moyen facile de le faire maintenant:
$builder
->add('hours', null , array(
'attr'=>
array(
'placeholder'=>'Working Hours',
'class'=>'MYCLASSFOR_INPUTS')
) ,
'label_attr' => array(
'class' => 'MYCLASSFOR_LABEL'
)
);
L'option que vous recherchez est label_attr
.
Cela fonctionne pour moi dans Symfony 2.3:
{{ form_row(form.hours, { 'label': 'Hours:'
,'label_attr': {'class': 'MYCLASSFOR_LABEL'}
,'attr': {'class': 'MYCLASSFOR_INPUTS'}
}
)
}}
Ce qui précède n'est plus correct, du moins dans le contexte où je l'utilisais. Dans Symfony 2.1, la solution est:
{{ form_label(form.item, label|default(null), { 'label_attr': { 'class': 'MYCLASS' } }) }}