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 :

[Twig] form_rest obligatoire pour génération d'un prototype de données ?


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 62
    Points : 31
    Points
    31
    Par défaut [Twig] form_rest obligatoire pour génération d'un prototype de données ?
    Bonjour ,

    J'ai un soucis avec un formulaire imbriqué dont l'un des champs est une collection , je suis obligé de mettre un form_rest pour pouvoir afficher le data-prototype dans le code source afin de générer ma collection de formulaire , si je ne met pas form_rest et que j'essaye de faire un FOR ... IN , je n'ai aucune génération de formulaire.

    Merci a ceux qui trouverons des réponses à ce problème car je m'arrache les cheveux depuis 2 jours ...

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour

    pour récupérer uniquement le prototype
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{form_widget(form.collection.get('prototype'))}}
    ici, un exemple de form collection avec personalisation du rendu en utilisant des macros
    https://github.com/beberlei/AcmePizz...ndex.html.twig

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 62
    Points : 31
    Points
    31
    Par défaut
    Merci mais ca ne règle pas mon problème ,

    Je souhaite personnaliser mon template en pouvant intervenir sur chaque champs et les mettre en forme , le problème c'est que comme c'est une collection j'ai l'impression que c'est du tout ou rien , soit on appel le formulaire complet soit on peut pas ...

    Si quelqu'un a une solution je suis preneur.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Je souhaite personnaliser mon template en pouvant intervenir sur chaque champs et les mettre en forme
    ici, un exemple de form collection avec personalisation du rendu en utilisant des macros
    https://github.com/beberlei/AcmePizz...ndex.html.twig
    ce lien ne répond pas à ta question ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 62
    Points : 31
    Points
    31
    Par défaut
    Malheuresement ca ne marche pas , voici un extrait de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <form method="post" {{form_enctype(extractMainForm)}}>
        <div class="row">
          <div id="codename" class="span2">{{ form_label(extractMainForm.main_code,"Code")}}</div>    
          <div id="codewidget" class="span3">{{ form_widget(extractMainForm.main_code)}}{{ form_errors(extractMainForm.main_code)}}</div>
     
          <div id="libellename" class="span2">{{ form_label(extractMainForm.main_name,"libellé")}}</div>    
          <div id="libellewidget">{{ form_widget(extractMainForm.main_name)}}{{ form_errors(extractMainForm.main_name)}}</div>
     
          <div id="descriptionname" class="span2">{{ form_label(extractMainForm.description,"Description")}}</div>    
          <div id="descriptionwidget" class="span3">{{ form_widget(extractMainForm.description)}}{{ form_errors(extractMainForm.description)}}</div>
     
          <div id="databasename" class="span2">{{ form_label(extractMainForm.database,"Base de données")}}</div>    
          <div id="databasewidget" >{{ form_widget(extractMainForm.database)}}{{ form_errors(extractMainForm.database)}}</div>
        </div>
        <div class="row">
          <div id="SqlName" class="span2">{{ form_label(extractMainForm.main_query,"Requête Sql")}}</div>    
          <div id="SqlWidget" class="span1">{{ form_widget(extractMainForm.main_query)}}{{ form_errors(extractMainForm.main_query)}}</div>
        </div>
          {% include "MaxxingExtractBundle:Extract:param.html.twig" with { extractMainForm : extractMainForm } %}
     
          <script type="text/html">{{ _self.prototype(extractMainForm.extract_params.get('prototype')) }}</script>
          {% macro prototype(test) %}
            {{ form_widget(test.param_name)}}
          {% endmacro %}
     
     
        <input type="submit"/>
      </form>
    Si je comprend bien , on déclare une méthode prototype dans la balise script et le paramètre qui sera passé dans la macro sera celui récupéré par le paramètre de la déclaration.

    Cela me renvoi une erreur sous firebug " TypeError: container.attr("data-prototype") is undefined "

    je suis sous symfony 2.1

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Cela me renvoi une erreur sous firebug " TypeError: container.attr("data-prototype") is undefined "
    A quoi correspond data-prototype?
    c'est un attribut qui est ajouté dans ton widget lorsque l'on utilise les fonctions twig form_widget, etc...

    Ici tu veux pouvoir personaliser, donc tu ne vas pas utiliser data-prototype comme template (coté client)
    ->ton champ prototype a été rendu dans une balise script[type=text/html], c'est son contenu qui doit être utilisé comme template

    Il y a du code javascript à la fin du fichier, consultes le.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 62
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup arnooo , tu m'as orienté et j'ai réussi à faire ce que je voulais.

    Je reprend ce post pour poser une nouvelle problématique toujours liée aux collections ,

    J'ai 2 collections qui s'imbriquent les unes dans les autres :

    Form1 : _ Champs 1 à n
    _ CollectionduForm2

    Form2 : _Champ1 à n
    _CollectionduForm3

    Form3 : _ Champ1 à n


    Dans ma vue j'arrive à afficher la première collection en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/html">
            {{_self.prototype(Form1.Form2.get('prototype'))}}                        
        </script>
    Mais je n'arrive pas à afficher la 2 eme collection imbriquée dans la première avec cette méthode.

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/html">
            {% for varform2 in Form1.Form2 %}
            {{_self.prototype(varform2.get('prototype'))}}
            {% endfor %}
        </script>
    mais rien n'y fais ,

    Merci d'avance !

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 22
    Points
    22
    Par défaut
    Bonjour, un petit Up du sujet j'ai le même problème mais simplement dans un template twig sans jquery,

    avez vous trouvé la solution?

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    j'ai aussi le meme souci,en effet je veux personnaliser les champs definis dans le data-prototype pour avoir apres un tableau contenant les labels et leurs widget respectifs j'ai beau essaye de comprendre et aussi d'essayer le code de AcmePizzaBundle mais ca m'affiche toujours cet erreur =>Method "items" for object "Symfony\Component\Form\FormView" does not exist<= alors si quelqu'un pourrait m'aider,je suis dessus depuis presque un mois merci d'avance

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/08/2009, 19h49
  2. Passage algo - code pour génération d'expressions régulières
    Par deedoo dans le forum Général Python
    Réponses: 6
    Dernier message: 11/08/2005, 14h32
  3. X11 obligatoire pour install console ?
    Par ovh dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 06/11/2003, 16h50

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