我试图通过attribute_id对一个集合进行排序.我以为这很容易,但是我觉得我没有正确使用它:
$attributes = Mage::getResourceModel('eav/entity_attribute_collection') ->setOrder('attribute_id'); echo $attributes->getSelect();
结果:
SELECT `main_table`.* FROM `eav_attribute` AS `main_table`
为什么没有订单?
你实际上是正确的做法.然而,由于Magento使用EAV,它需要应用技巧来帮助性能.
这些技巧之一是用于构建最终sql字符串的时间.通常它在最后一分钟加载缓慢,直到你实际上指出你想要访问一个集合的数据,才能看到用于生成集合的完整sql.例如运行代码,但是提示magento实际构建和加载集合,生成预期的输出.
$attributes = Mage::getResourceModel('eav/entity_attribute_collection') ->setOrder('attribute_id'); $attributes->count(); // forces the collection to load echo $attributes->getSelect()->assemble();
这导致sql:
SELECT `main_table`.* FROM `eav_attribute` AS `main_table` ORDER BY attribute_id DESC
所以你是在正确的道路上,只是Magento正在做最好的混合你的水平.这是非常好的.