浏览代码

Nettoyage requêtes pour ma liste de films à voir

François 6 年之前
父节点
当前提交
5049ac2faf

+ 5 - 1
src/AppBundle/Controller/VideothequePersonnelleController.php

@@ -17,7 +17,11 @@ class VideothequePersonnelleController extends Controller
      */
 	public function maListeAction (Request $request)
     {
-        $films = $this->getUser()->getFilms();
+        $films = $this
+            ->getDoctrine()
+            ->getManager()
+            ->getRepository('AppBundle:Film')
+            ->findTousFavoritesByUser($this->getUser());
 
         return $this->render('@App/videotheque/liste.html.twig', array(
             'listeFilms'    =>  $films,

+ 15 - 0
src/AppBundle/Repository/FilmRepository.php

@@ -97,4 +97,19 @@ class FilmRepository extends \Doctrine\ORM\EntityRepository
             ->getQuery()
             ->getResult();
     }
+
+    public function findTousFavoritesByUser($user)
+    {
+        $qb = $this->createQueryBuilder('f');
+        $qb
+            ->leftJoin('f.authered', 'aut')->addSelect('aut')
+            ->leftJoin('f.genres', 'gen')->addSelect('gen')
+            ->leftJoin('f.realisateurs', 'rea')->addSelect('rea')
+            ->leftJoin('f.usersWantToView', 'wan')
+            ->where($qb->expr()->in('wan', ':user'))
+            ->setParameter('user', $user);
+        return $qb
+            ->getQuery()
+            ->getResult();
+    }
 }

+ 13 - 0
src/AppBundle/Repository/UserRepository.php

@@ -10,4 +10,17 @@ namespace AppBundle\Repository;
  */
 class UserRepository extends \Doctrine\ORM\EntityRepository
 {
+    public function findUser($userId)
+    {
+        $qb = $this
+            ->createQueryBuilder('u')
+            ->leftJoin('u.films', 'f')
+            ->addSelect('f')
+            ->where('u.id = :user')
+            ->setParameter('user' , $userId);
+
+        return $qb
+            ->getQuery()
+            ->getSingleResult();
+    }
 }