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

Doctrine2 PHP Discussion :

QueryBuilder


Sujet :

Doctrine2 PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut QueryBuilder
    Bonjour,
    j'aimerais créer une requete QueryBuilder dans symfony2
    exemple soit la relation

    MATERIEL(1,n) ------(avoir)-------(0,n)CARACTERISTIQUES

    nous aurons trois tables
    MATERIEL
    MAT_CAR
    CARACTERISTIQUE

    sachant que la tables mat_car sera juste dans les annotations,
    comment je fait pour obtenir les caracteristiques d'un matériel donné???

    merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    y'a pas de requete a créer c'est direct dans l'ORM, fait bien ton schema le reste se fait tout seul

    http://symfony.com/doc/2.0/cookbook/...gineering.html

  3. #3
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut
    Bonjour,
    Mais si j'utilise les requetes pre configuré cela me fera au moins 3 requetes , la ou je voudrai en avoir 1.

    ce que je cherche a faire c'est des jointures dans mes requetes, mon problème c'est comment faire les jointures avec la table MAT_CAR qui na ni de controller ni d'entité. la déclaration de cette table ce trouve juste dans les annotations des autres tables (MATERIEL,CARACT....)

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    si tu veux pas de l'ORM, tu fais tes requete direct dans tes classes

  5. #5
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut
    He ben voila,

    maintenant tu ne pourrais pas me filer un coup de main pour la création de ces type de requetes , j'arrive à le faire si deux tables sont liée et q'une clé migre vers l'autre table en utilisant, alias.nomtable.
    Mais dans le cas d'une jointure avec une table de concaténation de clé je n'y arrive pas
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $em = $this->getDoctrine()->getEntityManager();
            $materiel = $em->createQueryBuilder()
                ->select("m,c,mt")
                ->from('DrakLocgestionBundle:Materiel','m')
                ->join('m.mat_car', 'mt')
                ->join('Caracteristiques', 'c')
                ->where("m.id = :id")
                ->setParameter('id', $id)
                ->getQuery()
                ->getResult();

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par drakuncorp Voir le message
    une table de concaténation de clé
    ?

  7. #7
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut
    ben,
    prenons en exemple ce schéma
    Images attachées Images attachées  

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    j'ai eu peur, "concaténation" j'ai cru qu'avais fait des champs type : 1-12-45-78

    par contre la, tu ne peux faire ça que dans la méthode, getCaracteristiques

  9. #9
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut
    ha,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $em = $this->getDoctrine()->getEntityManager();
            $modeles = $em->createQueryBuilder()
                ->select("m,ma,c")
                ->from('DrakLocgestionBundle:Modeles','m')
                ->from('DrakLocgestionBundle:ModelesMono','mo')
                ->from('DrakLocgestionBundle:Caracteristiques','c')
                ->join('m.marques', 'ma')
                ->join('mo.modeles','m2')
                ->join('mo.caracteristiques', 'm1')
                ->where("m.id = :id")
                ->setParameter('id', $id)
                ->getQuery()
                ->getResult();

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

Discussions similaires

  1. QueryBuilder avec count()
    Par Adraesh dans le forum Doctrine2
    Réponses: 8
    Dernier message: 13/06/2012, 13h46
  2. [2.x] QueryBuilder et Join
    Par krennos dans le forum Symfony
    Réponses: 1
    Dernier message: 20/05/2012, 18h53
  3. [2.x] QueryBuilder : jointure problème syntaxe
    Par hx.jonathan dans le forum Symfony
    Réponses: 8
    Dernier message: 16/11/2011, 19h28
  4. QueryBuilder et jointure automatique
    Par Manuk dans le forum Doctrine2
    Réponses: 3
    Dernier message: 16/08/2011, 19h34
  5. [C#] Composant QueryBuilder
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/07/2006, 21h57

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