En realidad lo está haciendo de la manera correcta. Sin embargo, dado que Magento usa EAV, necesita aplicar trucos para ayudar al rendimiento.
Uno de estos trucos es el tiempo utilizado para construir la cadena SQL eventual. Por lo general, se carga de forma lenta en el último minuto y no es hasta que realmente indique que desea acceder a los datos de una colección, que puede ver el SQL completo utilizado para producir la colección. Por ejemplo, ejecutar su código, pero hacer que magento realmente construya y cargue la colección, produce el resultado esperado.
$attributes = Mage::getResourceModel('eav/entity_attribute_collection')
->setOrder('attribute_id');
$attributes->count(); // forces the collection to load
echo $attributes->getSelect()->assemble();
Esto se traduce en el SQL:
SELECT `main_table`.* FROM `eav_attribute` AS `main_table` ORDER BY attribute_id DESC
Así que estaban en el camino correcto, simplemente Magento estaba haciendo su mejor esfuerzo para confundir. Es muy bueno en eso.
¡Gracias por la explicación! ¡Muy bueno saber! :) – powtac
el 'setOrder()' da como resultado el orden 'desc'. ¿Hay alguna forma de hacerlo 'asc'? –
-> setOrder ('attribute_id', 'asc'); –