Magento中addAttributeToFilter和addFieldToFilter之间的区别?

时间:2014-03-05 20:10:02

标签: php magento

Magento中addAttributeToFilter和addFieldToFilter有什么区别?我创建了一个自定义属性YES / NO。但是当我试图拉动产品系列时,它们都不适合我。它没有过滤任何东西。

    $Products = Mage::getModel('catalog/product')->getCollection();
    $Products->addAttributeToSelect('*');
    $Products->addFieldToFilter('amazon_listed',1);
    $Products->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
    $Products->load();

3 个答案:

答案 0 :(得分:7)

  

addAttributeToFilter()用于过滤EAV集合。

     

addFieldToFilter()用于过滤非EAV集合。

答案 1 :(得分:6)

addFieldToFilter 将根据表catalog_product_entity中数据库中的列过滤产品。

addAttributeToFilter 会根据您在收藏中包含的属性过滤产品。

在您的情况下,您必须使用 addAttributeToFilter ,如下所示:

$Products->addAttributeToFilter('amazon_listed',array('eq' => 1));
$Products->addAttributeToFilter('status',array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));

答案 2 :(得分:0)

要解决这个问题,

使用addAttributeToFilter()方法并尝试设置"用于产品列表"对于“管理”面板中“编辑属性”页面上的属性,为“是”。

希望它会有所帮助。