У меня есть этот запрос:
$collection = $this->getAssociatedProductCollection($product)
->addAttributeToSelect('*')
->addFilterByRequiredOptions()
->setPositionOrder()
->addStoreFilter($this->getStoreFilter($product))
->addAttributeToFilter('status', array('in' => $this->getStatusFilters($product)))
->addAttributeToSort('my_attribute', 'DESC');
и я хочу ЗАКАЗАТЬ сопутствующие товары по "my_attribute"
Фрагмент ->addAttributeToSort('my_attribute', 'DESC');
не дает мне хорошего результата, потому что в моем атрибуте хранятся числа в виде текста.
Я создал тестовую базу данных и увидел, что текущий запрос наложил порядок в моей тестовой базе данных:
SELECT * FROM length ORDER BY my_attribute + 0
Мой вопрос таков: как добавить «+ 0» в мой первый запрос к Magento, чтобы сделать правильный заказ:)
[EDIT]
Вот моя полная измененная функция:
public function getAssociatedProducts($product = null)
{
if (!$this->getProduct($product)->hasData($this->_keyAssociatedProducts)) {
$associatedProducts = array();
if (!Mage::app()->getStore()->isAdmin()) {
$this->setSaleableStatus($product);
}
$collection = $this->getAssociatedProductCollection($product)
->addAttributeToSelect('*')
->addFilterByRequiredOptions()
->setPositionOrder()
->addStoreFilter($this->getStoreFilter($product))
->addAttributeToFilter('status', array('in' => $this->getStatusFilters($product)))
->addAttributeToSort('breite', 'ASC')
// My Modification
->addAttributeToSort('my_attribute', 'ASC');
// My Modification
foreach ($collection as $item) {
$associatedProducts[] = $item;
}
$this->getProduct($product)->setData($this->_keyAssociatedProducts, $associatedProducts);
}
return $this->getProduct($product)->getData($this->_keyAssociatedProducts);
}
[/ EDIT]
Большое спасибо. :)