Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Cela sera ma dernière question pour aujourd'hui
Je récupère mes champs de cette manière :
$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
Hors ligne
Salut, oui tu peux le faire sans problème .
Une petite suggestion pour gagner du temps tu peux faire ça :
[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 :
[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
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
Pages: 1