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 addAttributeToFilter,按属性文本筛选_Php_Magento_Attributes - Fatal编程技术网

Php Magento addAttributeToFilter,按属性文本筛选

Php Magento addAttributeToFilter,按属性文本筛选,php,magento,attributes,Php,Magento,Attributes,我想要某个制造商的所有产品,比如说“Nike”(用户可以在这里输入字符串)。但在使用时: $products = Mage::getModel('catalog/product') ->getCollection() ->addAttributeToFilter('manufacturer', 'Nike'); 它不起作用,因为预期的是制造商id而不是“Nike”。有没有一种简单的方法可以从名称中获取id,或者有没有一种方法可以只使用名称而不

我想要某个制造商的所有产品,比如说“Nike”(用户可以在这里输入字符串)。但在使用时:

    $products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToFilter('manufacturer', 'Nike');

它不起作用,因为预期的是制造商id而不是“Nike”。有没有一种简单的方法可以从名称中获取id,或者有没有一种方法可以只使用名称而不使用id进行筛选?

首先通过标签获取id,然后执行addField对集合进行筛选

$productModel = Mage::getModel('catalog/product');
$attr = $productModel->getResource()->getAttribute("manufacturer");
if ($attr->usesSource()) {

     $manufacturer_id = $attr->getSource()->getOptionId("Nike");
}

$products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToFilter('manufacturer',$manufacturer_id);

首先通过标签获取id,然后对集合执行addField以进行筛选

$productModel = Mage::getModel('catalog/product');
$attr = $productModel->getResource()->getAttribute("manufacturer");
if ($attr->usesSource()) {

     $manufacturer_id = $attr->getSource()->getOptionId("Nike");
}

$products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToFilter('manufacturer',$manufacturer_id);

是的,您必须首先获取
属性id
,然后在过滤器中使用

$productModel = Mage::getModel('catalog/product');
$attr = $productModel->getResource()->getAttribute("manufacturer");
if ($attr->usesSource()) {
    $attr_id = $attr->getSource()->getOptionId("Nike"); // your_attribute_label
}
$products = $products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToFilter('manufacturer', $attr_id)->getData();
echo "<pre>";print_r($products);
$productModel=Mage::getModel('catalog/product');
$attr=$productModel->getResource()->getAttribute(“制造商”);
如果($attr->usesSource()){
$attr_id=$attr->getSource()->getOptionId(“Nike”);//您的_属性标签
}
$products=$products=Mage::getModel('目录/产品')
->getCollection()
->addAttributeToFilter('manufacturer',$attr_id)->getData();
回声“;印刷品(产品);

是的,您必须首先获取
属性id
,然后在过滤器中使用

$productModel = Mage::getModel('catalog/product');
$attr = $productModel->getResource()->getAttribute("manufacturer");
if ($attr->usesSource()) {
    $attr_id = $attr->getSource()->getOptionId("Nike"); // your_attribute_label
}
$products = $products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToFilter('manufacturer', $attr_id)->getData();
echo "<pre>";print_r($products);
$productModel=Mage::getModel('catalog/product');
$attr=$productModel->getResource()->getAttribute(“制造商”);
如果($attr->usesSource()){
$attr_id=$attr->getSource()->getOptionId(“Nike”);//您的_属性标签
}
$products=$products=Mage::getModel('目录/产品')
->getCollection()
->addAttributeToFilter('manufacturer',$attr_id)->getData();
回声“;印刷品(产品);

perfect,但是other,Simular答案稍早一点,因此标记了另一个。perfect,但是other,Simular答案稍早一点,因此标记了另一个。解决问题的答案将根据下拉值进行筛选+1解决我的问题的答案基于下拉值进行过滤+1.