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 :

Collection de relations [4.x]


Sujet :

Symfony PHP

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut Collection de relations
    Bonjours à tous.

    Je cherche un moyen pour une collection de relations d'agir comme si elle était une collection des entités reliées
    je m'explique:

    J'ai une entité Project, une entité User et une entité ProjectUser qui sert à associer des utilisateurs à un projet avec des informations supplémentaires (la Date d'ajout, et un commentaire)

    Comme il y a des informations supplémentaires pour la liaison je ne peux pas créer automatiquement la liaison par un "many to many", je dois passer par une entité ProjectUser qui à un champs $project qui lie l'entité Project, un champ $user qui lie l'entité User, ainsi que les champs des infos complémentaires ($date et $comment)

    Je cherche un moyen de faire un $project->getUsers() qui me renvoie directement la collection de User liés, (avec ou sans les infos supplémentaire)
    Pour le moment je suis obligé de boucler sur les $project->getProjectUsers() (as $projectUser) pour, de là, faire un $projectUser->getUser().

    Pour la raison et le contexte: j'ai déjà de nombreuses fonctions qui font des traitement sur des collections de User.
    et je trouve que rajouter un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sCollectionType = $aUsers->getTypeClass()->name;
     
    if ($sCollectionType === ProjectUser::class) {
        $aRealUsers = new ArrayCollection();
        foreach ($aUsers as $oUser) {
            $aRealUsers->add($oUser->getUser());
        }
        $aUsers = $aRealUsers;
    }
    en entête de chacune de ses fonctions c'est dégueulasse :p

    J'imagine bien créer une propriété virtuelle dans les entités qui va faire se travail, du genre getUserCollection().
    Mais vu que ça me parait être une problématique plutôt courante sur les (appelons ça) les entités de liaison, je me dis qu'il doit y avoir un meilleur moyen ?
    Surtout que dans mon cas réel ça risque de faire de très nombreuses propriétés virtuelles :/


    J'avoue être incapable de résumé simplement la chose pour trouver une réponse sur google sur ce coup.

    du coup,
    Merci bien pour le coup de main !

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    salut,

    Les objets étant associés, pour récupérer les données issues de ces associations il va falloir effectuer une requête DQL( dialecte doctrine pour faire des requêtes SQL) avec jointure entre tes 3 entités.
    Un exemple sur la doc SF : https://symfony.com/doc/current/doct...elated-records

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut
    Ah bah oui, on passe par le Repository je n'y avais pas pensé.

    Merci bien !
    Problème résolu.


    [hs]
    Petit ajout pour le modérateur: Cool les balises [c][/c] je connaissais pas. Par contre je ne les vois nul part dans l'éditeur, du coup, il faut vraiment le savoir.
    Peut être à remonter à quelqu'un ?
    [/hs]

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/08/2014, 17h25
  2. [2.x] Relation ManyToMany et Collection
    Par fredxd dans le forum Symfony
    Réponses: 1
    Dernier message: 10/12/2013, 19h13
  3. Réponses: 4
    Dernier message: 16/11/2011, 09h01
  4. Relations EJB : Collection OneToMany vide !
    Par jhnattal dans le forum Java EE
    Réponses: 3
    Dernier message: 07/01/2011, 11h47
  5. Relation inverse vers une collection avec héritage
    Par Julienoune dans le forum Hibernate
    Réponses: 0
    Dernier message: 18/03/2009, 06h09

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