Sfoglia il codice sorgente

Order by name as parameter

Sullivan SENECHAL 9 anni fa
parent
commit
dae39d24b5

+ 1 - 3
src/Packagist/WebBundle/Controller/PackageController.php

@@ -57,9 +57,7 @@ class PackageController extends Controller
 
         $packages = $this->getDoctrine()
             ->getRepository('PackagistWebBundle:Package')
-            ->getFilteredQueryBuilder($filters)
-            ->addOrderBy('p.id', 'DESC')
-        ;
+            ->getFilteredQueryBuilder($filters);
 
         $data['packages'] = $this->setupPager($packages, $page);
         $data['meta'] = $this->getPackagesMetadata($data['packages']);

+ 1 - 2
src/Packagist/WebBundle/Controller/UserController.php

@@ -169,8 +169,7 @@ class UserController extends Controller
     {
         $packages = $this->getDoctrine()
             ->getRepository('PackagistWebBundle:Package')
-            ->getFilteredQueryBuilder(array('maintainer' => $user->getId()))
-            ->addOrderBy('p.name');
+            ->getFilteredQueryBuilder(array('maintainer' => $user->getId()), true);
 
         $paginator = new Pagerfanta(new DoctrineORMAdapter($packages, true));
         $paginator->setMaxPerPage(15);

+ 6 - 1
src/Packagist/WebBundle/Entity/PackageRepository.php

@@ -268,7 +268,7 @@ class PackageRepository extends EntityRepository
         return $qb->getQuery()->getResult();
     }
 
-    public function getFilteredQueryBuilder(array $filters = array())
+    public function getFilteredQueryBuilder(array $filters = array(), $orderByName = false)
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
         $qb->select('p')
@@ -280,6 +280,11 @@ class PackageRepository extends EntityRepository
         }
 
         $qb->orderBy('p.abandoned');
+        if (true === $orderByName) {
+            $qb->addOrderBy('p.name');
+        } else {
+            $qb->addOrderBy('p.id', 'DESC');
+        }
 
         $this->addFilters($qb, $filters);