Pārlūkot izejas kodu

Fetch minimum data for dependents page and fix query to work in mysql strict mode

Jordi Boggiano 9 gadi atpakaļ
vecāks
revīzija
ae8046b2c3

+ 7 - 1
src/Packagist/WebBundle/Controller/Controller.php

@@ -15,6 +15,7 @@ namespace Packagist\WebBundle\Controller;
 use Symfony\Bundle\FrameworkBundle\Controller\Controller as BaseController;
 use Pagerfanta\Adapter\DoctrineORMAdapter;
 use Pagerfanta\Pagerfanta;
+use Packagist\Entity\Package;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>
@@ -39,9 +40,14 @@ class Controller extends BaseController
                 if ($package instanceof \Solarium_Document_ReadOnly) {
                     $solarium = true;
                     $ids[] = $package->id;
-                } else {
+                } elseif ($package instanceof Package) {
                     $ids[] = $package->getId();
                     $favs[$package->getId()] = $favMgr->getFaverCount($package);
+                } elseif (is_array($package)) {
+                    $solarium = true;
+                    $ids[] = $package['id'];
+                } else {
+                    throw new \LogicException();
                 }
             }
 

+ 2 - 2
src/Packagist/WebBundle/Entity/PackageRepository.php

@@ -339,14 +339,14 @@ class PackageRepository extends EntityRepository
     public function getDependents($name, $offset = 0, $limit = 15)
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('p')
+        $qb->select('p.id, p.name, p.description, p.language')
             ->from('Packagist\WebBundle\Entity\Package', 'p')
             ->join('p.versions', 'v')
             ->leftJoin('v.devRequire', 'dr')
             ->leftJoin('v.require', 'r')
             ->where('v.development = true')
             ->andWhere('(r.packageName = :name OR dr.packageName = :name)')
-            ->groupBy('p.id')
+            ->groupBy('p.id, p.name, p.description, p.language')
             ->orderBy('p.name')
             ->setParameter('name', $name);