/** * @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); }
/** * @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; }