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 :

Récupérer données d'une relation n n [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 27
    Par défaut Récupérer données d'une relation n n
    Bonjour à tous,
    je viens de me mettre à Symfony et j'ai du mal avec les relations n n.

    Dans ma base de donnée ci dessous, un "profile" peut avoir plusieurs "hobby" et un "hobby" peut appartenir à plusieurs "profile".

    Schéma Yaml :
    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
     
    Hobby:
      columns:
        id:   { type: integer, notnull: true, primary: true, autoincrement: true}
        name: { type: string(255), notnull: true }
     
    Profile:
      columns:
        id:   { type: integer, notnull: true, primary: true,  autoincrement: true }
        name: { type: string(255), notnull: true }
     
    ProGetHob:
      columns:
        profile_id: { type: integer, primary: true }
        hobby_id:   { type: integer, primary: true }
      relations:
        Profile: { onDelete: CASCADE, local: profile_id, foreign: id }
        Hobby:   { onDelete: CASCADE, local: hobby_id, foreign: id }
    J'aimerai pouvoir récupérer tous les hobby d'un profil en appliquant la méthode ci-dessous en tant que collection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $hobbies = $profile->getProGetHob();
    Mais l'erreur suivante s'affiche : Unknown record property / related component "pro_get_hob" on "Profile"

    Est-il possible d'utiliser cette méthode ?
    sinon comment faire ?

    Merci à tous.

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Par défaut
    salut
    t'a pas declarer les foreigns alias

    essayer de faire comme ça


    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
    
    Hobby:
      columns:
        id:   { type: integer, notnull: true, primary: true, autoincrement: true}
        name: { type: string(255), notnull: true }
     
    Profile:
      columns:
        id:   { type: integer, notnull: true, primary: true,  autoincrement: true }
        name: { type: string(255), notnull: true }
     
    ProGetHob:
      columns:
        profile_id: { type: integer, primary: true }
        hobby_id:   { type: integer, primary: true }
      relations:
        Profile: { onDelete: CASCADE, local: profile_id, foreign: id, foreignAlias: ProGetHobs }
        Hobby:   { onDelete: CASCADE, local: hobby_id, foreign: id , foreignAlias: ProGetHobs }
    en générale en met au pluriel les relation Many (ici ProGetHobs )

    comme ça tu peut utiliser les méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hobbies = $profile->getProGetHobs();
    j'ai donné le même nom de relation pour Profile et Hobby
    tu peut faire ce que tu veut

    Bon chance

  3. #3
    Invité
    Invité(e)
    Par défaut
    A noter qu'avec ceci :
    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
    Hobby:
      columns:
        id:   { type: integer, notnull: true, primary: true, autoincrement: true}
        name: { type: string(255), notnull: true }
     
    Profile:
      columns:
        id:   { type: integer, notnull: true, primary: true,  autoincrement: true }
        name: { type: string(255), notnull: true }
      relations:
        Hobbies:
          class: Hobby
          refClass: ProGetHob
          local: profile_id
          foreign: hobby_id
          foreignAlias: Profiles
     
    ProGetHob:
      columns:
        profile_id: { type: integer, primary: true }
        hobby_id:   { type: integer, primary: true }
      relations:
        Profile: { onDelete: CASCADE, local: profile_id, foreign: id, foreignAlias: ProGetHobs }
        Hobby:   { onDelete: CASCADE, local: hobby_id, foreign: id , foreignAlias: ProGetHobs }
    Tu pourrais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hobbies = $profile->getHobbies();
    et même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $profiles = $hobby->getProfiles();

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 27
    Par défaut
    Merci de vos réponse, ça va me faciliter le travail !!!


    Cependant une question me question me taraude l'esprit :
    Est-il possible de trier la collection lors de son obtention ?

    ex : faire un tri des hobbies par ordre alphabétique directement dans la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $hobbies = $profile->getHobbies();
    ou dois-je faire un tri une fois la collection obtenue ???

    Merci

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

Discussions similaires

  1. Récupérer données dans une relation many to one
    Par phpestpuissant dans le forum Seam
    Réponses: 1
    Dernier message: 17/10/2012, 00h08
  2. Récupérer données d'une page web
    Par vallgui dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/10/2006, 01h21
  3. ajout de données avec une relation N-à-N
    Par yeah_baby64 dans le forum Access
    Réponses: 3
    Dernier message: 28/07/2006, 18h19
  4. Réponses: 1
    Dernier message: 19/02/2006, 13h32
  5. [JTable] Récupérer données d'une cellule éditée
    Par lilou77 dans le forum Composants
    Réponses: 9
    Dernier message: 14/09/2005, 10h34

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