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 :

Comment intégrer plusieurs tables dans un formulaire ? [1.x]


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
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut Comment intégrer plusieurs tables dans un formulaire ?
    Bonjour à tous,

    Je pense que c'est un problème récurrent que j'ai, et les recherches que j'ai effectuée ne me donnent des résultats que pour Symfony 1.1 ou 1.2 :/

    En gros, je sais que je doit utiliser soit embedRelation, soit embedForm, mais je n'ai aucune idée du comment.

    Concrètement, voilà ce que j'ai, et ce que je veux obtenir :

    4 Tables :

    Sites
    id
    description_id
    date_ajout
    etat

    Description
    id
    site_id
    texte
    langue

    Parametres_sites
    id_parametres
    id_sites
    valeur

    Parametres
    id
    libelle

    Je veux donc faire un formulaire d'ajout de site, en gros il faut :

    Plusieurs champs description (un pour chaque langue (fr/en pour le moment).
    Tout les paramètres (checkbox ou input), et c'est tout.

    Côté affichage ça sera champs par champs (il y a des catégories de paramètres).


    Bref, je ne vois pas trop comment faire pour afficher les libellé de mes paramètres dans un formulaire d'ajout de Sites, je m'en remet à vous

    Merci.

  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
    Dans un premier temps je reverrais ton modèle.

    La table Description peut parfaitement être intégrée à la table site et le multilingue activé par le "behaviors" i18n

    Le schéma donnera alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sites:
      actAs:
        i18n:
          fields: [ texte ]
        timestamp
      columns
        etat: integer
        texte: string
    deux "grosses" table réduites à la portion congrues.
    Le actAs permet d'attribuer des comportements automatisés aux tables :
    • i18n : va nous générer des traductions pour le champs "texte"
    • timestamp : va nous générer deux champs, update et modified avec les dates de création et de mise a jour, ces dates seront automatiquement mises à jour, sans aucun code à écrire.

    Dernière chose, s'il n'y a pas de clef(s) primaire(s) définie(s), doctrine va automatiquement générer un champ Id en clef primaire auto-incrémenté.

    Pour les tables paramètres, je ne suis pas sur de comprendre ce que tu veux réellement faire.

    Jette un œil sur le plugin sfDoctrineActAsTaggablePlugin qui pourrait répondre a tes besoins sur les paramètres de la table.

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Je ne comprend pas trop comment fonctionne le "i18n" du actAs ni à quoi ressemblera ma base de données avec.

    Sinon pour mes table paramètres, je souhaite créer d'un côté une table avec seulement un id et un libellé (internationalisé) et une table qui regroupera l'id d'un site avec l'id d'un paramètre et la valeur des paramètres en question.

    Par exemple, j'ai 2 paramètres (j'en aurai une 50aine) et 1 site :

    Site
    id : 1

    Parametres_sites
    id_parametres : 1
    id_sites : 1
    valeur : true
    id_parametres : 2
    id_sites : 1
    valeur : false

    Parametres
    id : 1
    libelle : param1
    id : 2
    libelle : param2

  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
    Peux-tu donner quelques exemple de ce que devrait être une fiche remplie avec ses paramètres ?

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Peux-tu donner quelques exemple de ce que devrait être une fiche remplie avec ses paramètres ?
    C'est des critères d'aménagement en fait, comme si le site (pas des sites web) comporte une piscine, une terrasse, un télévision (donc des boolean) mais aussi savoir le nombre de pièces, de chambres etc...

    Ce sont des champs qui seront réutilisé pour les recherches.

    PS : Tu aurais une doc des behaviors, j'ai du mal à comprendre comment ils fonctionnent. (je regarde là : http://www.symfony-project.org/gentl...Layer-Doctrine).

    EDIT : Je regarde de ce côté : http://www.doctrine-project.org/proj...s/pl#behaviors

  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
    Site !!! et pas site ces informaticiens sont fou...

    Bon, je comprend mieux maintenant.

    En fait, une description avec des propriétés différentes suivant la description choisie. Ca, ca ne va pas être simple.

    Ce qui peut être simple, c'est une descriptions avec un paramètre alpha (on peut toujours y mettre un chiffre), et la description dans plusieurs langues.

    Le shéma des trois tables (en réalité 5 après génération)
    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
    30
    31
     
    site:
      actAs:
        i18n:
          fields: [ texte ]
        timestamp
      columns
        etat: integer
        texte: string
     
    description:
      columns:
        valeur: string
        site_id: integer
        libelle_id: integer
      relations:
        site:
          local: site_id
          foreing: id
          foreingAlias: descriptions
        libelle:
          local: libelle_id
          foreing: id
          foreingAlias: descriptions
     
    libelle:
      actAs:
        i18n:
          fields: [ nom ]
      columns:
        nom: string
    Bon, c'est a creuser et cela ne répond pas réellement à la question initiale, mais si tu parts sur un schéma défectueux, tu n'as aucune chance d'arriver à une application viable.

    Maintenant, reste la notion de la présentation du schéma. Si tu veux que les libellés puissent être, suivant le cas, des boutons radio, des cases à cocher, des listes de libellés, des zone de texte libre, des zone de chiffre libre, c'est réalisable, mais cela va être un peu (beaucoup) plus lourd à mettre en œuvre. Même avec symfony, surtout si tu fais ta première application et que tu maîtrises moyennement le framework. Tous dépends du temps d'apprentissage que tu vas pouvoir consacrer et qui sera intégré dans la partie développement.

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

Discussions similaires

  1. [AC-2010] Comment intégrer un état dans un formulaire
    Par albayt dans le forum IHM
    Réponses: 4
    Dernier message: 02/11/2013, 11h29
  2. Comment supprimer plusieurs champs dans un formulaire?
    Par AurelienNF dans le forum Langage
    Réponses: 13
    Dernier message: 12/03/2011, 16h27
  3. Appel à plusieurs tables dans un formulaire
    Par Ledaf dans le forum IHM
    Réponses: 2
    Dernier message: 31/01/2009, 01h43
  4. Réponses: 3
    Dernier message: 21/06/2007, 18h48
  5. Réponses: 5
    Dernier message: 23/04/2007, 13h37

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