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

PHP & Base de données Discussion :

[Doctrine] Relation multiple


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 16
    Points
    16
    Par défaut [Doctrine] Relation multiple
    Bonjour à tous,

    voilà j'ai un petit souci sur l'affichage d'une table dans l'admin generator.

    J'ai une table "ville" dont voici le schéma :

    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
     
    Ville:
      tableName: ville
      columns:
        id:
          type: integer(4)
          primary: true
          autoincrement: true
        nom:
          type: string(255)
          notnull: true
        cp:
          type: string(6)
          notnull: true
        latitude:
          type: decimal(8)
          default: '0.00000'
          notnull: true
          scale: false
        longitude:
          type: decimal(8)
          default: '0.00000'
          notnull: true
          scale: false
    et une table route dont voici le schéma :

    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
     
    Route:
      tableName: route
      columns:
        id:
          type: integer(4)
          primary: true
          autoincrement: true
        nom:
          type: string(20)
          notnull: true
        routetype_id:
          type: integer(4)
          notnull: true
        ville_depart: integer(4)
        ville_arrivee: integer(4)
    les champs ville_depart et ville_arrivee pointent tous les deux sur la table "ville"

    j'ai tout essayé dans le schéma pour lui faire comprendre ça mais il a pas l'air de m'écouter

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    relations:
      Ville:
        local: ville_depart
      Ville:
        local: ville_arrivee
    mais la deuxième relation écrase la première...

    j'ai essayé aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    relations:
      Ville:
        local: ville_depart, ville_arrivee
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    relations:
      Ville:
        local: [ville_depart, ville_arrivee]
    (il a pas aimé les tableaux...)

    je cherche depuis 2 heures de l'aide sur le net mais pas moyen de trouver...

    Je bénis celui qui me donnera la solution!!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 66
    Points : 82
    Points
    82
    Par défaut
    Comme tu le dis toi meme : "mais la deuxième relation écrase la première..." Si tu donnes le même nom à une relation comment l'object va savoir quelle relation allé chercher.

    En gros ca donnerai dans ton object (je schématise grossièrement) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class Route extends BaseRoute{
     
      function getVille()
      {
        return $this->getVilleDepart();
      }
     
      function getVille()
      {
        return $this->getVilleArrive();
      }
    }
    Deux fontions portant le même nom ce qui va te générer une erreur PHP. En gros il suffit que tu change le nom que tu vas donner à tes relations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    relations:
      VilleDepart:
        local: ville_depart
        foreignAlias: VilleDeparts
        class: Ville
      VilleArrive:
        local: ville_arrivee
        foreignAlias: VilleArrivees
        class: Ville

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Trop fort !!
    J'avais le même problème qui est donc maintenant résolu.
    Vive le forum

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Points : 123
    Points
    123
    Par défaut
    En même j'ai posé la même question il y a deux jour à peine...

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Moi j'ai un soucis lors d'un data-load.

    Reprenons la classe route :

    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
     
    Route:
      tableName: route
      columns:
        id:
          type: integer(4)
          primary: true
          autoincrement: true
        nom:
          type: string(20)
          notnull: true
        routetype_id:
          type: integer(4)
          notnull: true
        ville_depart: integer(4)
        ville_arrivee: integer(4)
    relations:
      VilleDepart:
        local: ville_depart
        foreignAlias: VilleDeparts
        class: Ville
      VilleArrive:
        local: ville_arrivee
        foreignAlias: VilleArrivees
        class: Ville
    Imaginons que je crée un jeu d'essaie comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Route:
      1:
        nom: test
        routetype_id: 1
        ville_depart: 1
        ville_arrivee: 2
    En supposant que les ville 1 et 2 existent...

    Dois t-on utiliser les nom en gras ou les noms "VilleDepart" et "VilleArrivee" ?

Discussions similaires

  1. [AC-2003] Relations multiples entre deux mêmes tables
    Par DuracellSubaquatique dans le forum Modélisation
    Réponses: 8
    Dernier message: 04/08/2009, 08h57
  2. Réponses: 4
    Dernier message: 28/07/2009, 21h01
  3. [A-03] Gestion des relations multiples
    Par Helder_Tokyo dans le forum Modélisation
    Réponses: 12
    Dernier message: 04/12/2008, 06h57
  4. relations multiples sur une table
    Par lapuce dans le forum Modélisation
    Réponses: 2
    Dernier message: 18/07/2007, 17h58
  5. [ADO.NET] remplaire datagrid "depuis table relation multiple"
    Par hoda dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/12/2006, 08h49

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