Aslında doğru şekilde yapıyorsunuz. Bununla birlikte, Magento EAV'yi kullandığı için, performansa yardımcı olmak için hileler uygulamak zorundadır.
Bu hilelerden biri, olağan SQL dizesini oluşturmak için kullanılan zamanlamadır. Genellikle son dakikada tembel bir şekilde yüklenir ve koleksiyonun verilerine erişmek istediğiniz SQL'i tam olarak görebilmeniz için aslında bir koleksiyon verisine erişmek istediğinizi belirtmezsiniz. Örneğin kodunuzu çalıştırmak, ancak koleksiyonu oluşturmak ve yüklemek için magento isteminde beklenen çıktıyı üretir.
$attributes = Mage::getResourceModel('eav/entity_attribute_collection')
->setOrder('attribute_id');
$attributes->count(); // forces the collection to load
echo $attributes->getSelect()->assemble();
Bu SQL sonuçlanır:
SELECT `main_table`.* FROM `eav_attribute` AS `main_table` ORDER BY attribute_id DESC
Yani sadece Magento seviyesini sizi şaşırtmak için geleni yaptığını, doğru yolda idi. Bu konuda çok iyi.
Açıklama için teşekkürler! Bilmek çok güzel! :) – powtac
'setOrder()' 'desc' düzeninde sonuçlanır. Bunu 'asc' yapmak için herhangi bir yolu var mı? –
-> setOrder ('attribute_id', 'asc'); –