Сортировка товаров в products_collection Есть решение
Приветствую, такой вопрос:
получил я хэш нужных мне товаров, причем отсортированных в нужном мне порядке.
Например: "id/1, 5, 3";
Передаю в new shopProductsCollection($hash); и вывожу на сайте. Но выводится на сайте в таком порядке "id/5, 3, 1" - по уменьшению id либо "id/1, 3, 5", если отключить строчку $sql .= $this->_getOrderBy(); в shopProductsCollection.class.php
Как мне сохранить собственную сортировку, которую я получил запросом в mysql?
1 ответ
Решил проблему следующим образом: отсортировать массив полученной коллекции по массиву, где товары стоят в верном положении
//тут запрос sql с выборкой нужный товаров $sql_prod потом
$products = $model->query($sql_prod)->fetchAll();
$hash = 'id/';
$req_order = array();
foreach($products as $product)
{
array_push($req_order, $product['product_id']);
$hash .= $product['product_id'] . ', ';
}
$collection = new shopProductsCollection($hash);
$new_prod = $collection->getProducts();
//сортируем в нужном нам порядке
$new_prod_order =array();
foreach($req_order as $idx)
{
$new_prod_order[] = $new_prod[$idx];
}
// и возвращаем полученную и отсортированную в нужном порядке коллекцию товаров
return ($new_prod_order);