Salut à tous.

J'ai une question en ce qui concerne le FormType. Est-ce que c'est mieux de mettre le style et les attributs dans le form type ou le mettre dans le template twig?
Je parle de style bootstrap or style propre à nous et des labels, placeholders, required.
J'ai vu qu' ils disent sur la doc dans les bonnes pratiques de séparer le style de formType, mais ils ne parlent que des buttons. Je me demandais si ça peut s'appliquer pour tous les enfants d'un form.

Merci.

6 réponses


Salut, le but c'est surtout d'éviter les répétitions d'avoir un code maintenable.
Je dirais majoritairement et dans un premier temps dans le FormType. Et si demain tu dois réutiliser le même formulaire. Car du coup tu peux très bien faire des formulaires différents pour une même entité. Si demain tu veux garder le même formulaire mais que ton submit doit avoir une couleur différent. Alors là tu retire le css du formType et tu ajoutes dans le twig.

Moi je raisonne ainsi mais il n'y a pas de mauvaise façon.

negrutul
Auteur

Salut et merci pour la réponse, c'est noté.
D'habitude mes forms ne change pas de forme en ce qui concerne le style(pour l'instant).
J'ai voulu juste aérer un peu mon form type parce que j'avais des champs ou tout ce qui était propre à un form enfant c'était lié au style.
Pour les form type qui ont plus de 10-15 propriétés je les trouve un peu difficile à la lecture.

Salut,
Si ton form à 15 propriétés. N'hésite pas à espacer un peu ton code.
Tu as des extensions avec vscode qui peuvent t'aider, tels que PHPCsFixer. Pour gérer les espaces, indenter ton code etcc.

negrutul
Auteur

Salut, Je suis sur phpStorm, mais j'utilise PHPCsFixer, le code est bien espacé et indenté. Mais, comme j'ai dit dans le post anterior j'ai des propriétés qui ne sont pas liées au logique back, donc j'aimerais les déplacer du formType dans le views: 
Avant)
->add('code', ChoiceType::class, [
'choices' => $options['code'],
'label' => 'Code',
'attr' => [
'class' => 'sel2',
'style' => 'min-width: 3.75rem;',
'placeholder' => 'Sélectionner un code',
],
])

{{ form_row(form.code) }}

Après)
->add('code', ChoiceType::class, ['choices' => $options['code']])

{{ form_row(form.code, {
'label' : 'Code',
'row_attr' : {
'class' : 'd-flex flex-column m-1',
'style' : 'min-width: 3.75rem;',
},
'attr' : {
'class' : 'sel2',
'placeholder' : 'Sélectionner un code',
},
}) }}

Je ne sais pas si c'est une bonne pratique ou pas
Merci pour le retour.

Non, comme ça je trouve ça très bien.
Après tu as des style qui se répète. Pourquoi ne pas les mettre dans une classe :D
Au plaisir et développe toi bien :D

negrutul
Auteur

Le style est le même parce que c'est le même form row qui est rendu avec les attributs soit dans la class Form Type soit dans twig. J'ai montré les deux situations ou je me trouve :)

Merci pour tes retours et bonne fin de semaine.