2010-11-06 2 views
1

Я пытаюсь получить этот запрос в magento.атрибут select magento query

Выберите Мерк, option_id из каталога ....... группа по option_id

ГНФАР у меня есть это, но это AINT показывает значение 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, возможно, мне нужно сделать некоторые трюки, чтобы получить это значение.? –

1

Атрибуты с множественным выбором сохраняются в виде значений, разделенных запятыми. Так что вам просто нужно добавить атрибут «Мерк» в выберите объект:

$collection->addAttributeToSelect('merk'); 

и когда вы переборе коллекции, вы можете получить варианты идентификатор, позвонив значение атрибута:

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

После извлечения из значения, которые нужно получить ярлык опции для каждого идентификатора опции

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