예제 #1
0
 /**
  * @inheritdoc
  */
 public function getCovers($products, Struct\ShopContextInterface $context)
 {
     $ids = [];
     foreach ($products as $product) {
         $ids[] = $product->getId();
     }
     $ids = array_unique($ids);
     $query = $this->getQuery($context);
     $query->where('image.main = 1')->andWhere('image.articleID IN (:products)')->setParameter(':products', $ids, Connection::PARAM_INT_ARRAY);
     /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */
     $statement = $query->execute();
     $data = $statement->fetchAll(\PDO::FETCH_ASSOC);
     $covers = [];
     foreach ($data as $row) {
         $id = $row['__image_articleID'];
         $covers[$id] = $this->hydrator->hydrateProductImage($row);
     }
     return $this->assignProductMedia($covers, $products);
 }
예제 #2
0
 /**
  * @inheritdoc
  */
 public function getCovers($products, Struct\ShopContextInterface $context)
 {
     $ids = [];
     foreach ($products as $product) {
         $ids[] = $product->getVariantId();
     }
     $ids = array_unique($ids);
     $query = $this->getQuery($context);
     $query->andWhere('childImage.article_detail_id IN (:products)')->setParameter(':products', $ids, Connection::PARAM_INT_ARRAY);
     $query->orderBy('image.main')->addOrderBy('image.position');
     /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */
     $statement = $query->execute();
     $data = $statement->fetchAll(\PDO::FETCH_GROUP);
     $result = [];
     foreach ($data as $number => $row) {
         $cover = array_shift($row);
         $result[$number] = $this->hydrator->hydrateProductImage($cover);
     }
     return $result;
 }