Symfony2, Comment faire de l'étiquette d'un formulaire de classe/attr différent de celui de son entrée?
Je voudrais créer un formulaire avec une étiquette et les entrées, mais la classe d'entre eux devraient être différentes. Le Code ci-dessous crée le label pour l'entrée avec la 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 de la ui-spinner-box
sera édité pour à la fois label et input. Il va même jusqu'à mettre de l'espace réservé pour son label.
Alors comment faire c'est de créer attr
pour le label séparément afin que je puisse la sortie de 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="" >
Vous devez vous connecter pour publier un commentaire.
Comme mentionné dans le la documentation:
Vous pouvez définir ces attributs dans le template twig ou en générateur de formulaire:
Template Twig:
pour symfony 2.1 et plus récente utilisation:
dans l'héritage de symfony 2.0, il l'habitude d'être
Générateur de formulaire
{{ form_label(hours, null, { 'attr': {'class': 'MYCLASSFOR_LABEL'} }) }}
parce que le deuxième paramètre est le nom du label. Si vous passer la valeur null, il va utiliser la valeur définie dans le formulaire{{ form_label(hours, null, { 'label_attr': { 'class': 'MYCLASSFOR_LABEL' }}) }}
C'est peut-être nouveau, mais il y a un moyen facile de le faire maintenant:
L'option que vous cherchez est
label_attr
.Cela fonctionne pour moi dans Symfony 2.3:
Ci-dessus n'est plus approprié, au moins dans le contexte, je l'utilise. Dans Symfony 2.1 la solution est: