Bonjour à tous,
je tente tant bien que mal d'effectuer une requête auprès de mon cher et tendre repository tout en lui demandant de limiter le nombre de résultats retournés.
J'ai donc d'abord trouvé la méthode setMaxResults($nombre) mais après avoir constaté que celle-ci fonctionnait pas de la manière souhaitée, j'ai lu dans la doc qu'en effet avec une requête comportant des leftJoin elle n'avait pas le comportement initialement souhaité.
J'ai donc lu, sur ce même forum, qu'en utilisant un Paginator on réglait nos problèmes, mais malgré son utilisation ma requête ne me retourne pas le bon nombre de résultats (par contre je remarque que quand je change mon $nombre, le nombre de résultats change mais je n'arrive pas à saisir le lien entre le nombre fixé et le nombre retourné)
Voici comment je m'en sers :
Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public function getSomeUnassigned($language, $limit) { $objQuery = $this ->createQueryBuilder('com')->select('com') ->leftJoin('com.assignedCaller', 'cal')->addSelect('cal') ->leftJoin('com.contacts', 'con')->addSelect('con') ->leftJoin('com.answers', 'can')->addSelect('can') ->leftJoin('can.answer', 'ans')->addSelect('ans') ->leftJoin('ans.question', 'que')->addSelect('que') ->leftJoin('ans.translations', 'ant', 'WITH', 'ant.language = :language')->addSelect('ant') ->where('cal.id is NULL') ->andWhere('com.surveyCompleted = false') ->setParameter('language', $language) ->setMaxResults($limit) ->orderBy('com.name'); return new Paginator($objQuery->getQuery(), $fetchJoin = true); } }
Partager