| Conditions | 1 |
| Paths | 1 |
| Total Lines | 21 |
| Code Lines | 18 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | <?php |
||
| 23 | public function __invoke(): array |
||
| 24 | { |
||
| 25 | $queryBuilder = $this->em->createQueryBuilder() |
||
| 26 | ->from('ProjetNormandie\ForumBundle\Entity\Topic', 't') |
||
| 27 | ->select('t') |
||
| 28 | ->join('t.forum', 'f') |
||
| 29 | ->join('t.lastMessage', 'm') |
||
| 30 | ->join('m.user', 'u') |
||
| 31 | ->join('t.type', 'tt') |
||
| 32 | ->addSelect('f') |
||
| 33 | ->addSelect('m') |
||
| 34 | ->addSelect('u') |
||
| 35 | ->addSelect('tt') |
||
| 36 | ->where('f.status = :status') |
||
| 37 | ->andWhere('t.boolArchive = :archived') |
||
| 38 | ->setParameter('status', ForumStatus::PUBLIC) |
||
| 39 | ->setParameter('archived', false) |
||
| 40 | ->orderBy('t.lastMessage', 'DESC') |
||
| 41 | ->setMaxResults(50); // Limiter à 50 topics les plus récents |
||
| 42 | |||
| 43 | return $queryBuilder->getQuery()->getResult(); |
||
| 44 | } |
||
| 46 |