属性选择magento查询

时间:2010-11-06 13:03:40

标签: magento

我正试图在magento中获取此查询。

从目录....... group by option_id

中选择merk,option_id

Sofar我有这个,但它不幸地显示了option_id值,而且我也不知道如何按他们分组......

我希望有人愿意帮助我 [代码]

<?php 
function getMenuWatches(){
    $collection = Mage::getModel("catalog/product")->getCollection();
    $collection->addAttributeToFilter("attribute_set_id", 26); 
    $collection->addAttributeToSelect("option_id , merk"); 


    return $collection;
}
$collection=getMenuWatches();
//print_r($collection);
foreach ($collection as $product){
    echo $product->getOptionId();
    $product->getMerk();
    echo   $product->getId('merk');
    echo   $product->getAttributeText('merk')."<br/>";

}
?>
[/code]

2 个答案:

答案 0 :(得分:1)

$collection->addAttributeToSelect(array('option_id', 'merk'));
$collection->groupByAttribute('option_id');

答案 1 :(得分:1)

具有多个选项的属性存储为逗号分隔值。 所以你只需要在select对象中添加“merk”属性:

$collection->addAttributeToSelect('merk');

当您迭代集合时,您可以通过调用属性值来检索选项ID:

// List of option_id values
$values = explode(',', $product->getMerk()); 

检索值后,您需要为每个选项ID

检索选项标签
$attribute = $product->getResource()->getAttribute('merk');
$optionLabel = $attribute->getSource()->getOptionText($optionId);

要按您可能使用的多个值之一进行过滤:

// Creates FIND_IN_SET statement for comma-separated attribute values
$collection->addAttributeToFilter('merk', array('finset' => $optionId));