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

ORM PHP Discussion :

Problème Table associative [Doctrine]


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut Problème Table associative
    Bonjour,

    Je suis sous sympfony 1.4 et je souhaite créer une base avec comme tables :

    une table order, une table classe.

    Un order peut avoir 0 ou plusieurs classes.

    J'ai un schéma.yml comme suit :

    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
    Order:
      columns:
    	type_id: { type:string(255), default: employee}
    	...
     
     
    	relations:
    	  classe: { class: Classe, local: id, foreign: classe_id, refClass: Orderclasse }
     
    Classe:
      columns:
        name: { type:string(255) }
      relations:
        order: {class: Order, local: id, foreign: classe_id, refClass: OrderClasse }
     
    OrderClasse:
      tableName: order_classe
      columns:
        order_id: {type: integer, primary: true}
        classe_id: {type: integer, primary: true}
    Je ne suis pas sûr qu'il soit bon car quand je build le sql, je ne trouve pas la table order_classe dans la base.

    J'ai regardé sur la doc officielle mais je ne réussis pas à générer le code qu'il faut.

    Merci de m'éclairer.

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Je me réponds :

    Il faut d'abord faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    symfony doctrine:build-model
    et ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    symfony doctrine:build-sql
    A+

  3. #3
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Pour infos si tu utilises la bdd MySQL avec l'application MySQLWorkbench tu as des plugin's permettant de générer un schéma YAML pour Doctrine et Propel.

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Ok, merci pour le renseignement.

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    J'aurais une autre question concernant un schéma un peu différent :

    Je dois renseigner certains champs dans une table order comme suit :

    Commentaires 1 : Zone de texte
    Classe1 : Liste de choix multiple

    Commentaires 2 : Zone de texte
    Classe2 : Liste de choix multiple

    Commentaires 3 : : Zone de texte
    Classe3 : Liste de choix multiple

    Sachant que j'ai une table classe avec id et name.

    Je pensais modéliser de la sorte :

    table order

    commentaires 1 : varchar(255)
    classe_id1 int foreign key reference order_classe(id)

    commentaires 2 : varchar(255)
    classe_id2 int foreign key reference order_classe(id)

    commentaires 3 : varchar(255)
    classe_id3 int foreign key reference order_classe(id)

    table order_classe

    order_id int
    classe_id int

    Mais comment ce schéma se traduit il avec les modeles ?

    Est ce que ce schéma est valable ?

    Il y a t il une alternative ?

    Je ne suis pas habitué à dev avec symphony/doctrine (projet récupéré)...

    Merci.

  6. #6
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Alors voici la doc très bien faite pour l'explication des différents type de liaisons : http://www.doctrine-project.org/proj...chema-files/pl

    Une fois que tu as tout fait dans le fichier schema.yml, il suffit juste de faire un build-model et toutes les classes seront générées.

    Les liaisons seront directement faites dans l'objet, ce qui te permet d'écrire comme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $q = Doctrine_Query::create()     ->select('u.id, p.id')     ->from('User u')     ->leftJoin('u.Phonenumbers p');

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

Discussions similaires

  1. Problème macro pour table association
    Par aidada dans le forum Macros Access
    Réponses: 3
    Dernier message: 13/05/2014, 10h58
  2. [AC-2010] Probléme "enregistrements associés requis dans la table"
    Par Chris3180 dans le forum Access
    Réponses: 2
    Dernier message: 09/01/2014, 15h25
  3. Réponses: 1
    Dernier message: 12/07/2013, 08h32
  4. [Doctrine] Problème: table associative insertion unique
    Par krouge dans le forum ORM
    Réponses: 1
    Dernier message: 23/08/2012, 16h10
  5. Problèmes table de données MySQL et fichiers associés!
    Par sofien dans le forum Administration
    Réponses: 6
    Dernier message: 04/12/2008, 08h37

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