Tri*_*ign 22 collections status filter magento
我在这里遇到了一些严重的Magento问题.正如预期的那样:
$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', array('eq' => 1));
Run Code Online (Sandbox Code Playgroud)
将为$ category_id返回所有已启用的产品.不过这个:
$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', array('eq' => 0));
Run Code Online (Sandbox Code Playgroud)
不归还残疾人产品.我似乎无法找到返回残疾产品的方法,我不知道为什么.
我试过这个:
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
Run Code Online (Sandbox Code Playgroud)
这本来是有效的,但显然可能已被弃用.
有谁知道如何获得一个类别,启用和禁用的所有产品?
Jür*_*len 45
别担心,你只是被一个非常不寻常的恒定定义^^困住了.试一试:
$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter(
'status',
array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
);
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,Varien决定STATUS_DISABLED使用值来定义此常量2,而不是更直观(和常用)的值0.