IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

EntityType : mauvais rendu des checkboxes [4.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut EntityType : mauvais rendu des checkboxes
    Bonjour la communauté,

    Dans un formulaire, je désire rendre un champ de type EntityType sous forme de cases à cocher. J'ai donc fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            $builder
                ->add('equipments', EntityType::class, array(
                                                                'class' => 'App\Entity\backend\Equipment', 
                                                                'multiple' => true, 
                                                                'expanded' => true, 
                                                                'choice_label' => 'equipment',
                                                                'by_reference' => false, 
                                                                'query_builder' => function(EquipmentRepository $er) use ($belongingCarrier) 
                                                                                    {
     
                                                                                        return $er->queryFindByBelonging($belongingCarrier);
     
                                                                                    }           
                                                            )
    Cependant, lorsque j'effectue un rendu simple dans Twig

    Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            {{ form_start(form) }}
     
                {{ form_rest(form) }}
     
                <button type="submit" class="btn btn-success">Next</button>
     
            {{ form_end(form) }}

    la case à cocher cache la première lettre du label :

    Nom : Capture.JPG
Affichages : 2014
Taille : 9,6 Ko

    Quelqu'un aurait une idée sur la manière de résoudre ce problème?

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Salut,

    Tu utilises le "form theme" Bootstrap 4 dans config/twig.yaml ?
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    twig:
        default_path: '%kernel.project_dir%/templates'
        debug: '%kernel.debug%'
        strict_variables: '%kernel.debug%'
        form_themes: ['bootstrap_4_layout.html.twig']

    Est-ce que ton formulaire est bien contenu dans des <div> "container", "row" et "col-X" ?

    Tu utilises quelle version de Symfony ?

    P.S. À mon avis tu peux utiliser form_widget() à la place de form_rest() qui est facultative car implicitement appelée par form_end() (voir ici).

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Merci beaucoup pour ton intérêt.

    J'utilise la version 4.3 de Symfony ainsi que le thème Bootstrap 4 :

    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    twig:
        default_path: '%kernel.project_dir%/templates'
        debug: '%kernel.debug%'
        strict_variables: '%kernel.debug%'
        form_themes: ['bootstrap_4_layout.html.twig']

    En supprimant {{ form_rest(form) }}, le bouton 'Next' se retrouve au-dessus de ma vue (de façon logique car implicitement appelé par {{ form_end(form) }}), ce qui ne m'arrange pas.

    Par contre, si je fais appel à form_widget(), je devrai alors le faire pour tous les champs afin de conserver l'ordre établi dans mon formulaire. Or, j'en ai beaucoup...

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Dans ce cas continue d'utiliser form_rest(), c'est juste qu'à titre personnel je préfère lister explicitement les champs à afficher (form_end() s'occupant implicitement des champs masqués).

    Si tu inspectes le HTML des checkboxes qui s'affichent mal, tu vois quelque chose qui cloche ?

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Apparemment, non :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="vehicle_equipments"><div class="form-check">        
      <input type="checkbox" id="vehicle_equipments_3" name="vehicle[equipments][]" class="form-check-input" value="3">
      <label class="form-check-label" for="vehicle_equipments_3">Speed regulator</label>
    </div>
     
    <div class="form-check">        
      <input type="checkbox" id="vehicle_equipments_7" name="vehicle[equipments][]" class="form-check-input" value="7">
      <label class="form-check-label" for="vehicle_equipments_7">Airbags</label>
    </div>

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Et tu n'aurais pas du CSS custom qui soit responsable du chevauchement ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mauvais affichage des checkbox dans un tableau
    Par Raiden1234 dans le forum Struts 2
    Réponses: 2
    Dernier message: 26/11/2012, 11h38
  2. Mauvais rendu des accents et espaces dans page
    Par Stéph utilisateur d'acces dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/01/2009, 15h40
  3. [C#] Tableau généré contenant des checkbox
    Par la_muraille dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2005, 12h16
  4. Cochage des checkbox d'un dbgrid
    Par kose dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/01/2005, 16h26
  5. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 08h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo