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();
答案 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()方法并尝试设置"用于产品列表"对于“管理”面板中“编辑属性”页面上的属性,为“是”。
希望它会有所帮助。