我正试图在magento中获取此查询。
从目录....... group by option_id
中选择merk,option_idSofar我有这个,但它不幸地显示了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]
答案 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));