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 :

[Form] Création d'un type de champ sur mesure


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Points : 13
    Points
    13
    Par défaut [Form] Création d'un type de champ sur mesure
    Bonjour à tous,

    Commençant à être bien rôdé dans l'utilisation des composants de base mis à dispos par Symfony, j'ai besoin d'aller plus loin et de faire mes propres types de champs de formulaire.

    Je vous explique mon problème:
    Je dois générer un formulaire affichant une liste d'éléments sélectionnables (checkbox). Ces éléments sont issus d'une collection d'entités rattachée à la classe associée à mon formulaire. Jusqu'ici, c'est simple.... je rajoute un champ de type "entity", avec les options "multiple" et "expanded" à true.

    Sauf que je ne veux pas que tous les éléments soient sélectionnables : en fonction de leur disponibilité je veux avoir la possibilité d'interdire la sélection (d'afficher un simple label).

    J'ai donc vainement essayé de suivre la doc officielle sur la création de nouveaux type de formulaire, mais c'est du ultra-light. et je bloque!!

    Voilà quand même la stratégie à laquelle j'ai pensé :

    >> Créer un nouveau type de champ dont le parent est "entity" (getParent())

    >> Transmettre les entités sur lesquels je vais travailler via l'attribut "query_builder"

    >> Analyser la disponibilité des données dans "BuildView()", créer une variable tableau pour ma vue qui agrège les couples entité/disponibilité

    Q : Est-ce que je peux accéder au repository dans mon BuildView pour travailler sur le query_builder passé en option?

    Est-ce bien à cet endroit que je dois le faire ?

    >> Publier le champ en tant que service

    >> Modifier le template twig du type champ "entity" pour l'adapter à mon propre type de champ (Parcours du tableau transmis à la vue dans BuildView. en fonction de la dispo : checkbox ou simple texte HTML)

    Q : Où puis-je trouver des informations complètes sur les liens entre les types de champs standards et leur template associé ?

    J'ai cherché dans form_div_layout.html.twig mais le widget du type "choice>expanded" sur lequel semble se baser le type de champ 'entity' ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {% block choice_widget_expanded %}
    {% spaceless %}
        <div {{ block('widget_container_attributes') }}>
        {% for child in form %}
            {{ form_widget(child) }}
            {{ form_label(child) }}
        {% endfor %}
        </div>
    {% endspaceless %}
    {% endblock choice_widget_expanded %}
    ... et je ne vois pas le rapport : Est-ce dans form_widget(child) qu'ils définissent les input "checkbox" ? Où trouver de la doc sur cette notion de formulaire fils ? Avez-vous une idée de comment ça fonctionne ? J'ai un peu l'impression d'avoir raté un gros morceau du fonctionnement des formulaires ??!!..

    Voilà, si vous pouviez m'indiquer :

    1. Si je délire complétement dans ma stratégie de dév et s'il n'y a pas plus simple

    2. Si vous avez une réponse aux quelques questions posées plus-haut

    ... ça serait génial, ça m'éviterait de détourner symfony pour me taper le formulaire à la mano à l'ancienne...

    Merci d'avance,

    Adrien

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 125
    Points : 108
    Points
    108
    Par défaut
    Ca m'arrive aussi ces questionnements si je pouvais pas faire autrement...

    Je pense la meilleur solution est de revoir dans la doc.

    Pour ton problème je ne peux pas t'aider directement je ne m'y suis pas encore penché sur cette fonctionnalité.

    pourras tu poster ta réponse si tu en as une ou tourner le post a résolut

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Re
    Bonjour,

    Si la doc est aussi mince c'est principalement parce qu'il existe des formations payantes (et pas qu'un peu !)...

    Personnellement j'ai aussi dû personnaliser un formulaire expanded + multiple.
    Après avoir pas mal chercher (sans succès) j'ai décidé d'appliquer une méthode pas très propre mais fonctionnelle (en JQuery) : cacher la div du formulaire, faire un affichage comme je le voulais qui va cocher (toujours en JQuery) les utilisateurs que je veux.

    Si c'est juste une question d'affichage tu peux faire inspecter l'élément, reprendre la div du form et le modifier à ta sauce.

    En tout cas bonne chance !

Discussions similaires

  1. Définir le futur type de champ dans une requête création de table
    Par Fredo67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/02/2007, 18h19
  2. problème sur un changement de type de champs
    Par blond1888 dans le forum SQL
    Réponses: 4
    Dernier message: 15/01/2007, 10h29
  3. erreur sur le type de champ
    Par samsso2006 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 02/11/2006, 10h41
  4. Facilité de tester les types de champs dans un FORM ?
    Par shadeoner dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2006, 20h49
  5. Aide sur la création d'un type simple (nom composite)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/11/2004, 20h30

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