Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-03-2014 12:02:56

Stoomm
Membre
Date d'inscription: 06-05-2009
Messages: 48

QueryBuilder : Select de quelques champs uniquement

Bonjour à tous,

Cela sera ma dernière question pour aujourd'hui smile

Je récupère mes champs de cette manière :

Code:

$query = $repository->createQueryBuilder($this->name);

Cela marche, mais j'aimerais restreindre les champs récupérés par ma requête (exemple sur une table salarié, je ne veux que le nom et l'id, pas le prénom, l'adresse, ...).

Y a-t-il un moyen de faire ça via le QB ? Car je n'ai rien trouvé et cela me choque un peu.

Merci smile

Hors ligne

 

#2 17-03-2014 12:15:09

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

Re: QueryBuilder : Select de quelques champs uniquement

Salut, oui tu peux le faire sans problème smile.

Une petite suggestion pour gagner du temps tu peux faire ça :

Code:

[lang=php]
 $qb = $this->createQueryBuilder('alias');

Ceci te créer le select qui va bien pour l'entité liée au repository ainsi que le from avec l'alias. Ainsi tu gagnes tu temps.

En fait quand tu peux créer un queryBuilder vierge comme ceci :

Code:

[lang=php]
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('alias.monchamp')
->from('MonEntity', 'alias');

Par contre dans le cas où tu spécifies des champs (à tester j'ai un doute) il te retourne un array au lieu d'une entité. Et c'est une entité, elle ne sera pas complètement remplie donc à toi de faire gaffe !

Hors ligne

 

#3 18-03-2014 12:48:23

Stoomm
Membre
Date d'inscription: 06-05-2009
Messages: 48

Re: QueryBuilder : Select de quelques champs uniquement

Hello Orkin,

Merci pour ton retour. En fait, je m'aperçois que mon problème était un peu plus complexe. Comme tu le dis, ça fonctionne bien. Par contre, cela ne fonctionne pas dans la pagination ...

Après recherche, le problème est connu :
http://www.doctrine-project.org/jira/browse/DDC-1927

Du coup, il semble qu'on ne puisse rien y faire. Frustrant !

EDIT : J'ai réussi finalement en passant par une requête parielle (mot clé DQL : partial)

Dernière modification par Stoomm (18-03-2014 13:16:56)

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