Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-09-2013 14:00:49

schumi59
Nouveau membre
Date d'inscription: 07-08-2013
Messages: 3

Jointure avec doctrine

Bonjour à tous,

J'utilise Doctrine2 avec ZF2 et j'ai besoin de faire une requête SQL du type :

Code:

[lang=sql]SELECT * FROM table1 JOIN table2 ON table1.champ1 = table2.champ2 WHERE table1.champ3 = 1 ;

je ne vois pas du tout comment faire ça avec mes entitées. J'ai essayé des trucs comme ça :

Code:

[lang=php]$resultsCom = $this->getEntityManager()->getRepository('\Module\Entity\Table1')->createQueryBuilder('a')
->innerJoin($this->getEntityManager()->getRepository('\Module\Entity\Table2'), 's', 'ON', 'a.champ1 = s.champ2')
->where('a.champ3=1')
->getQuery()
->getResult();

mais j'ai des erreurs :

Code:

[lang=php]Object of class Doctrine\\ORM\\EntityRepository could not be converted to string in /home/zf2/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Join.php on line 141

Je ne sais pas comment faire pour spécifier mon entité dans la requête.

Merci d'avance

Hors ligne

 

#2 24-09-2013 14:11:44

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1260

Re: Jointure avec doctrine

Salut, tu écris du DQL donc une chaine de caractère c'est donc normal que si tu lui passes un objet ça ne fonctionne pas !

Si tu as une relation dans ton entité tu peux faire comme ça dans ton repository :

Code:

[lang=php]
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('t', 'r')->from('Application\Entity\MaTable', 't')->innerJoin('t.relation', 'r');

Dans ton cas tu dois utiliser le mot clé with dans ton innerJoin ça donne ça

Code:

[lang=php]
[...]->innerJoin('t.relation (ou FQCN de l\'entité)', 'r', 'WITH', 'condition');

Ou encore directement en DQL :

Code:

[lang=php]
'SELECT t FROM MaTable t JOIN TableJoin tj WITH t.champ1 = tj.champ2';

Cependant je t'encourage à aller lire la doc c'est plus complet et plutôt bien expliqué.

Hors ligne

 

#3 25-09-2013 17:37:36

schumi59
Nouveau membre
Date d'inscription: 07-08-2013
Messages: 3

Re: Jointure avec doctrine

Merci beaucoup, c'est parfait !!

Hors ligne

 

#4 30-11-2014 19:05:59

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Jointure avec doctrine

Bonjour,

Voilà une semaine que je bloque sur la jointure, j'en ai marre de chercher sad

J'essaye aussi de faire une jointe qui n'a pas de relation définit dans mon Entity. J'aimerai donc mapper le résultat de la jointure sur un champ de mon Entity.

Comment que l'on fait smile

Merci d'avance


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#5 01-12-2014 12:32:30

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 613
Site web

Re: Jointure avec doctrine

Pourrais-tu créer ton propre sujet et nous donner des extraits de ton code ?

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages