/** * @param \Spryker\Zed\Gui\Communication\Table\TableConfiguration $config * * @return array */ protected function prepareData(TableConfiguration $config) { $query = $this->productCategoryQueryContainer->queryProductsByCategoryId($this->idCategory, $this->locale); //because datatables won't let use what's already defined in queryProductsByCategoryId() //it wil complain that the column <INSERT_NAME> is not found in <table> $query->withColumn(SpyProductCategoryTableMap::COL_PRODUCT_ORDER, 'product_order_alias'); $query->orderBy('product_order_alias', Criteria::ASC); $query->setModelAlias('spy_product_abstract'); $queryResults = $this->runQuery($query, $config); $results = []; foreach ($queryResults as $productCategory) { $results[] = [SpyProductAbstractTableMap::COL_ID_PRODUCT_ABSTRACT => $productCategory['id_product_abstract'], SpyProductAbstractTableMap::COL_SKU => $productCategory['sku'], SpyProductAbstractLocalizedAttributesTableMap::COL_NAME => $productCategory['name'], SpyProductCategoryTableMap::COL_PRODUCT_ORDER => $this->getOrderHtml($productCategory), self::COL_CHECKBOX => $this->getCheckboxHtml($productCategory)]; } unset($queryResults); return $results; }
/** * @param int $idCategory * @param \Generated\Shared\Transfer\LocaleTransfer $locale * * @return \Orm\Zed\ProductCategory\Persistence\SpyProductCategory[] */ public function getProductsByCategory($idCategory, LocaleTransfer $locale) { return $this->productCategoryQueryContainer->queryProductsByCategoryId($idCategory, $locale)->orderByFkProductAbstract()->find(); }