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 :

Bonne pratique : get complexe depuis une entity


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 53
    Points : 62
    Points
    62
    Par défaut Bonne pratique : get complexe depuis une entity
    Bonjour,

    j'ai une problématique que je souhaite régler de manière "propre" en suivant les bonnes pratiques symfony2 mais je ne sais pas comment faire...

    j'ai 2 entity, "Résultat" et "Objectif" qui sont reliées de manière indirecte (pas de relation one-to-many ou many-to-many) :
    Dans chaque entity sont définis 2 champs : "indicateur" et "périmetre de mesure" (c'est ce qui fait le lien).
    Je souhaiterai créer dans l'entity "Objectif" un getter "getResultats" qui renverrait tous les résultats avec le même "indicateur" et le même "périmètre de mesure" que ceux de l'"Objectif". J'ai défini pour cela un service qui exécute une requête sql pour renvoyer les "résultats".
    mon problème est double :
    - comment appeler ce service depuis une entity (depuis un controller je fais "$this->get('service');" mais depuis une entity ??)
    - est-ce propre (j'ai un doute la dessus) ?

  2. #2
    Membre régulier
    Profil pro
    IED Web
    Inscrit en
    Octobre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : IED Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 60
    Points : 90
    Points
    90
    Par défaut
    Le mieux est qd même de notifier explicitement à Doctrine la relation entre "indicateur" et "périmetre de mesure dans ton entité "Objectif".

    Qu'est ce qui t'en empêche?

  3. #3
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 53
    Points : 62
    Points
    62
    Par défaut
    en fait j'ai déjà défini les relations entre "indicateur" et "périmetre de mesure" dans mon entité "Objectif" :
    Chaque objectif est défini par (notamment), 1 indicateur et 1 périmètre de mesure (relation many-to-one pour les 2)
    de même
    Chaque résultat est défini par (notamment), 1 indicateur et 1 périmètre de mesure (relation many-to-one pour les 2)

    mais les entity objectif et résultat n'ont pas de lien direct. (Pour obtenir les résultats correspondants à un objectif il est nécessaire de requetter sur tous les résultats ayant les même "indicateur" et "périmetre de mesure")

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    Moi je ferai une fonction dans le contrôleur qui te fait cette opération...

  5. #5
    Membre régulier
    Profil pro
    IED Web
    Inscrit en
    Octobre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : IED Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 60
    Points : 90
    Points
    90
    Par défaut
    Sauf si une relation manytomany entre Objectif et Resultat avait du sens, alors dans le repository de ton Objectif, tu fais ta méthode getResultats avec la requête qui va bien, et tu fais ton appel depuis le contrôleur comme le dit rafleboss.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Perso je place toujours mes requêtes spécifiques dans les Repositories.

  7. #7
    Membre régulier
    Profil pro
    IED Web
    Inscrit en
    Octobre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : IED Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 60
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par Guybrush113 Voir le message
    Perso je place toujours mes requêtes spécifiques dans les Repositories.
    Oui c'est ce qui est conseillé.

  8. #8
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 53
    Points : 62
    Points
    62
    Par défaut
    merci à tous pour vos réponses. C'est un peu ce que je pensais mais du coup je vous faire part du problème en découlant :
    je souhaite faire un formulaire à partir des entity Objectif et résultat du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $form = $this->createFormBuilder($Utilisateur)
     ->add(.....) // données de l'entity Objectif
     ->add('resultats', 'collection', array('type' => new ResultatType))
     ->getForm();
    et là ça fonctionne (de ce que je vois) uniquement avec un getResultats dans mon entity "Objectif". Sinon je peux essayer de passer par un formulaire non dépendant d'une entity mais ca ne me semble pas très propre non plus...

    qu'en pensez vous ?

Discussions similaires

  1. Bonne pratique méthode qui renvoie une liste/tuple
    Par manticore dans le forum Général Python
    Réponses: 5
    Dernier message: 13/12/2011, 14h42
  2. [2.x] [Entity] Récupérer l'objet Request depuis une entity
    Par Invité dans le forum Symfony
    Réponses: 2
    Dernier message: 22/09/2011, 10h23
  3. Réponses: 13
    Dernier message: 07/04/2010, 20h22
  4. Plugin de génération EJB Entity depuis une BdD
    Par j'suisStateful dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 03/10/2007, 16h55

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