php - 如何在 Magento 中获取属性选项的位置?

标签 php sorting magento attributes

我遇到了以下问题。在一个额外的模块中,我想根据属性的位置对属性的选项进行排序。当我尝试获取一个Attribute的Option时,我可以获取到Id和Label,但是那个对象中没有更多内容。

例如,我可以这样做:

$attribute = $_product->getResource()->getAttribute($code)->getOptionsText($value):

或者只是getOptionId($value),但是没有获取Position的东西,可以在后台编辑。那么,如何获得呢?还没有在网上找到任何(有用的)东西。

(同样类似的问题magento sort attribute option collection by position?也没有提供任何帮助)

编辑: 我设法做的是直接执行 SQL 语句,如下所示:

SELECT sort_order FROM mag_eav_attribute_option WHERE option_id = 114 AND attribute_id = 533;

但我认为,有更好的选择来获得该值(value)。

最佳答案

我自己找到了答案并想与您分享。

$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);

希望对大家有帮助。

关于php - 如何在 Magento 中获取属性选项的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7873980/

相关文章:

java - Collections.sort 不起作用

php - CDbCriteria addConditions where 子句不明确

php - 如何在ajax响应页面中运行jquery?

java - 在java中对2d字符串数组进行排序 - 对数组中的索引元素进行排序

c - 如何对字符进行优先排序?

Magento 新闻通讯订阅 - 如果已订阅则显示错误

javascript - Magento - 分级定价 + 自定义选项?

magento - addItem 仅通过 local.xml 到 Magento cms_page 不能使用主题?

php - 无法加载 "Symfony\Bridge\Twig\Form\TwigRenderer"运行时

php - Doctrine ManyToMany 同一实体重复输入错误