问候,
我正在尝试按照管理属性面板中输入的“位置”对属性选项值数组进行排序。我似乎已经尝试了一切,有谁知道这是怎么可能的?
我确信这会奏效:
$_collection = Mage::getResourceModel('eav/entity_attribute_option_collection')
->setStoreFilter(0)
->setAttributeFilter($_productAttribute->getId())
->addAttributeToSort('position')
->load();
但事实并非如此。任何帮助将不胜感激!
答案 0 :(得分:1)
我已经在以前的项目中遇到过addAttributeToSort的经验:也许这个功能在今天尝试使用setOrder('columname')或者尝试将你的magento更新到最后一个版本
答案 1 :(得分:0)
工作得很好。在Magento 1.6中使用setOrder('sort_order')
。
答案 2 :(得分:0)
$attribute = Mage::getModel('eav/entity_attribute')->load( $code, 'attribute_code');
$option_col = Mage::getResourceModel( 'eav/entity_attribute_option_collection')
->setAttributeFilter( $attribute->getId() )
->setStoreFilter()
->setPositionOrder( 'ASC' );
$option_col->getSelect()->order('main_table.sort_order '.$orderby);
答案 3 :(得分:0)
在app / design / frontend / default / default / template / manapro / filtercheckboxes / items.phtml的开头添加以下代码:
function cmp($a, $b){
if ($a == $b)
return 0;
return ($a['position'] < $b['position']) ? -1 : 1;
}
$array = $this->getItems();
usort($array, "cmp");
在foreach循环中用$ array替换$ this-&gt; getItems()。
答案 4 :(得分:0)
由于它是eav集合,它将加载加载查询加载到集合并使用加载函数。所以如果你在
后添加订单Mage::getResourceModel('eav/entity_attribute_option_collection')
就像:
$_collection = Mage::getResourceModel('eav/entity_attribute_option_collection')->getSelect()->order('main_table.sort_order '.$orderby);
$_collection->setStoreFilter(0)
->setAttributeFilter($_productAttribute->getId())
->load();