Bạn đang thực sự làm đúng cách. Tuy nhiên, kể từ khi Magento sử dụng EAV, nó cần phải áp dụng các thủ thuật để giúp thực hiện.
Một trong những thủ thuật này là thời gian được sử dụng để xây dựng chuỗi SQL cuối cùng. Thông thường nó được tải nhẹ nhàng vào phút cuối và nó không phải cho đến khi bạn thực sự chỉ ra bạn muốn truy cập dữ liệu của một bộ sưu tập, rằng bạn có thể thấy toàn bộ SQL được sử dụng để tạo ra bộ sưu tập. Ví dụ chạy mã của bạn, nhưng nhắc Magento thực sự xây dựng và tải bộ sưu tập, tạo ra kết quả mong đợi.
$attributes = Mage::getResourceModel('eav/entity_attribute_collection')
->setOrder('attribute_id');
$attributes->count(); // forces the collection to load
echo $attributes->getSelect()->assemble();
Điều này dẫn đến SQL:
SELECT `main_table`.* FROM `eav_attribute` AS `main_table` ORDER BY attribute_id DESC
Vì vậy, bạn đang trên con đường đúng đắn, chỉ Magento đang làm mức độ của nó tốt nhất để gây nhầm lẫn bạn. Nó rất tốt ở đó.
Nguồn
2011-01-26 11:05:57
Cảm ơn bạn đã giải thích! Rất tốt để biết! :) – powtac
kết quả 'setOrder()' trong thứ tự 'desc'. Có cách nào để làm cho nó 'asc'? –
-> setOrder ('attribute_id', 'asc'); –