2010-11-06 145 views
1

我試圖在magento中得到這個查詢。屬性選擇magento查詢

選擇梅爾克,從目錄option_id .......組由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] 

回答

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

txs但不知何故,他不給我option_id。 Merk是一個有多種選擇的屬性。每個選擇都沒有。 option_id也許我必須做一些技巧才能獲得這個值。 – 2010-11-07 10:16:35

1

屬性具有多種選擇存儲爲逗號分隔值。 因此,您只需在選擇對象,加上「默克」屬性:

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