Partage
  • Partager sur Facebook
  • Partager sur Twitter

styliser les valeurs d'une EntityType

symfony 5

    17 septembre 2021 à 16:08:39

    Bonjour à tous

    Je rencontre une difficulté concernant EntityType

    j'ai créé une relation OneToMany avec une entity Image contenant une propriété "src" qui est celle que je définis  dans choice_label

                 ->add('image', EntityType::class, [
                    'class' => Image::class,
                    'choice_label' => "src",
                    'required' => false,
                    "expanded" => true,
                ])

    je me retrouve bien avec un selection contenant les noms de mes fichiers images

    Ce que je recherche à faire c'est intégrer ces noms dans des balises img pour afficher chaque image avec avec expanded => true, pouvoir checker la radio voulue

    sur twig,

    j'ai pu afficher les images :

    {% for image in form.image.vars.choices %}
       <img src="{{ asset('images/' ~  image.data.src) }}"/>
    {% endfor %}

    mais le select/radio (avec expanded) s'affiche en dessous,

    Je pense que les modifications doivent se faire sur le formulaireType mais je n'ai rien trouvé à ce sujet,

    quelqu'un aurait-il une idée ?


    • Partager sur Facebook
    • Partager sur Twitter

    la chance sourit aux audacieux

      17 septembre 2021 à 16:36:37

      Vu ton pseudo, arrête la prog', tu vas finir par cramer ton ordi.

      Je déconne :lol:

      • Partager sur Facebook
      • Partager sur Twitter
        17 septembre 2021 à 17:41:26

        haha, droit au but cristiano

        bref personne ?

        -
        Edité par PierreRichard78 17 septembre 2021 à 17:46:20

        • Partager sur Facebook
        • Partager sur Twitter

        la chance sourit aux audacieux

          17 septembre 2021 à 22:56:09

          Salut

          Le "souci" est que dans la norme HTML, il n'est pas possible de mettre autre chose que du texte dans les options d'une liste de choix (et je dirais même que c'est dans les balises option tout court). Il va te falloir une couche de JavaScript pour simuler une liste de choix avec le HTML tel que tu le souhaites, je pense qu'il y a des scripts tout prêts pour ça, mais j'avoue que je ne saurais pas quel mots-clés utiliser pour trouver rapidement. Reste que le plus basique pourrait fonctionner quand même.

          • Partager sur Facebook
          • Partager sur Twitter
            18 septembre 2021 à 18:55:05

            Salut Ymox,

            merci pour ta réponse,

            oui j'ai 2 possibilités de régler le soucis :

            soit en twig créer une boucle contenant input de type radio + balise img

            ou alors vider le form_row en js et injecter input de type radio + balise img

            mais j'aurais pensé que sur le formType on puisse le faire

            • Partager sur Facebook
            • Partager sur Twitter

            la chance sourit aux audacieux

              18 septembre 2021 à 21:22:17

              Il y a effectivement la possibilité de te créer un bloc de rendu personnalisé au niveau Twig, mais là j'avoue que c'est plus théorique qu'autre chose pour moi, parce que l'imbrication des blocs pour un champ EntityType, c'est assez complexe d'y toucher sans que ça ne pose problème pour les autres.

              • Partager sur Facebook
              • Partager sur Twitter
                19 septembre 2021 à 10:51:53

                ce n'est pas une mauvaise idée les block personnalisés, mais j'avoue que ma connaissance à ce sujet est assez limité je vais chercher une doc plus explicite  pour essayer, ce serait peut-être une solution
                • Partager sur Facebook
                • Partager sur Twitter

                la chance sourit aux audacieux

                styliser les valeurs d'une EntityType

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown