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 :

formulaire multi table


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Par défaut formulaire multi table
    Bonsoir,

    Je dois écrire un formulaire (questionnaire) qui utilise des données depuis plusieurs tables (sujets, contributeur, résultat évaluation..) .

    Pour commencer simplement et doucement j' ai donc les opérations suivantes:

    Créer un module frontend evaluation OK
    Créer une instance de evaluationform OK

    Pour le premier widget de mon formulaire, j' i besoin de récupérer un champs (enum) d' une autre table.

    Voici le code de mon lib/form/doctrine/EvaluationForm.class.php
    :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     $this->widgetSchema['socialrelation'] = new sfWidgetFormChoice(array(
          'choices'  => Doctrine_Core::getTable('Contributor')->getSocialrelation(),
          'expanded' => true,
        ));
        $this->validatorSchema['socialrelation'] = new sfValidatorChoice(array(
          'choices' => array_keys(Doctrine_Core::getTable('Contributor')->getSocialrelation()),
        ));
    J' obtiens
    Unknown method ContributorTable::getSocialrelation

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A la base des formulaires permettant les modifications il y a les objets du modèles basés sur Doctrine (ou éventuellement Propel).

    Ces objets ne peuvent modifier qu'un enregistrement à la fois (quoique, mais laissons le quoique de côté).

    Donc, les form ne peuvent modifier qu'une enregistrement d'une table à la fois.

    Donc, ce n'est pas faisable.

    Quoique (bis)...

    En effet, tu peux définir, dans ton formulaire des "embed" form, qui permettent d'inclure dans un form de base (commande), d'autre form à modifier (lignes de commande).

    L'autre solution, si le nombre de ligns à modifier est fixe, c'est de définir entièrement ton formulaire, non lié à une table (à partir de sfFormSymfony) et de traiter le bind et l'enregistrement directement "à la mano". Ce qui n'est pas très compliqué et permet, à ce moment là, d'utiliser certaines finesses des objets doctrines pour accéder à plusieurs objets directement (la fin du premier quoiqie..., mais en dehors du save standard d'un sfFormDoctrine).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Par défaut
    Trés étonnant quand meme, c' est pas si rare d' alimenter plusieurs tables depuis un formulaire si ?

    Bon sinon, le nombre d' enregistrements est fixe.

    sauf oubli j' en ai 8 :

    1 enregistrement table contributor (celui qui évalue)
    1 enregistrement table evaluation
    5 enregistrements table score (1 score par topic)
    1 enregistrement table customer (id du client evalué )

    Si tu as un exemple pour faire ceci.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Rare oui, disons peu courant. Surtout en modification. D'ailleurs, tu veux afficher les 8, modifier les 8 à la fois ou modifier certains des 8 ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Par défaut
    Non simplement création des 8 enregistrements.

    C' est un formulaire d' évaluation.

    J' ai pu lire ici et la qu' il fallait utiliser les embedForm pour faire cela.

    http://www.symfony-project.org/more-...Advanced-Forms

    En fait le visuel du form serait composé de ( bloc par bloc )

    1 champs bouton radio => (choix du lien avec l evalué)
    5 champs texte + bouton radio + 1 imput text => ( score + comment note)
    1 champ imput text => (comment global)

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Si tu peux avoir une liaison qui parte d'une table de base et que les autres tables y soient liées en étoiles.

    Dans le genre facture (table de base), 2 adresses de livraisons, n lignes de commandes, n ligne de TVA

    Tu peux alors envisager d'utiliser les embed form.

    Dans le cas contraire, le plus simple est de créé un form de toute pièces et de faire les sauvegardes "à la mano"

Discussions similaires

  1. Difficultées formulaire multi tables
    Par joel50 dans le forum Modélisation
    Réponses: 2
    Dernier message: 14/06/2015, 07h26
  2. [AC-2007] Formulaire multi tables
    Par DurDur dans le forum Modélisation
    Réponses: 4
    Dernier message: 12/12/2013, 22h08
  3. Réponses: 2
    Dernier message: 21/05/2012, 11h47
  4. [AC-2007] Formulaire multi - tables
    Par greg360 dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/12/2010, 09h09
  5. Formulaire multi tables
    Par rousse dans le forum IHM
    Réponses: 4
    Dernier message: 12/11/2007, 15h50

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