Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php magento中类别id为的按属性筛选产品下拉选项值_Php_Magento - Fatal编程技术网

Php magento中类别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

我想按类别id的属性下拉选项值筛选产品。我正在使用以下查询进行筛选,但不起作用

$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-城市是自定义属性吗?你用的是平板桌子吗?如果两者都是“是”,则您的属性可能在产品集合中不可用,无法对其进行筛选-大量相关问题,例如“按自定义属性筛选集合”是的,我使用了带有平面表的自定义属性。