Php magento中类别id为的按属性筛选产品下拉选项值
我想按类别id的属性下拉选项值筛选产品。我正在使用以下查询进行筛选,但不起作用Php magento中类别id为的按属性筛选产品下拉选项值,php,magento,Php,Magento,我想按类别id的属性下拉选项值筛选产品。我正在使用以下查询进行筛选,但不起作用 $collection1 = Mage::getModel('catalog/product')->getCollection(); $options = Mage::getModel('eav/config') ->getAttribute('catalog_product', 'city') ->getSource() ->getAllOptions(); //g
$collection1 = Mage::getModel('catalog/product')->getCollection();
$options = Mage::getModel('eav/config')
->getAttribute('catalog_product', 'city')
->getSource()
->getAllOptions(); //get all options
$optionId = false;
foreach ($options as $option) {
if (strtolower($option['label']) == 'delhi') { option
$optionId = $option['value'];
break;
}
}
if ($optionId) {
$collection1->addAttributeToFilter('city', $optionId);
}
$category = Mage::getModel('catalog/category')->load(49);
$collection1->addCategoryFilter($category);
请说明我在这个查询中做错了什么?你试过这样做吗
$category = Mage::getModel('catalog/category')->load(49);
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($category)
->addAttributeToFilter('city',
array('finset' => Mage::getResourceModel('catalog/product')
->getAttribute('city')
->getSource()
->getOptionId('delhi')
)
)
->addAttributeToSelect('*');
你试过这样吗
$category = Mage::getModel('catalog/category')->load(49);
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($category)
->addAttributeToFilter('city',
array('finset' => Mage::getResourceModel('catalog/product')
->getAttribute('city')
->getSource()
->getOptionId('delhi')
)
)
->addAttributeToSelect('*');
刚刚为您格式化了代码-我在第一个if语句行中留下了
选项
,我假设这是一个输入错误,但您永远不会知道。通过(string)$collection1->getSelect()检查sql查询结果;Pankaj-城市是自定义属性吗?你用的是平板桌子吗?如果两者都是“是”,则您的属性可能无法在产品集合中进行筛选-大量相关问题,例如“按自定义属性筛选集合”是的,我使用了带有平面表的自定义属性。刚刚为您格式化了代码-我在第一个If语句行中留下了选项
,我假设这是一个输入错误,但您永远不会知道。通过(字符串)$collection1->getSelect()检查sql查询结果;Pankaj-城市是自定义属性吗?你用的是平板桌子吗?如果两者都是“是”,则您的属性可能在产品集合中不可用,无法对其进行筛选-大量相关问题,例如“按自定义属性筛选集合”是的,我使用了带有平面表的自定义属性。