/** * @param QueryBuilder $query * @return array */ private function getProducts(QueryBuilder $query) { /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */ $statement = $query->execute(); $data = $statement->fetchAll(\PDO::FETCH_ASSOC); $products = []; foreach ($data as $row) { $product = new BaseProduct((int) $row['__product_id'], (int) $row['__variant_id'], $row['__variant_ordernumber']); $product->addAttribute('search', $this->attributeHydrator->hydrate($row)); $products[$product->getNumber()] = $product; } return $products; }
/** * @param $data * @return BaseProduct[] */ private function createProducts($data) { $products = []; foreach ($data['hits']['hits'] as $data) { $source = $data['_source']; $product = new BaseProduct((int) $source['id'], (int) $source['variantId'], $source['number']); $product->addAttribute('elastic_search', new Attribute(['score' => $data['_score']])); $products[$product->getNumber()] = $product; } return $products; }