كيفية تصفية الفئة عند التحميل من Mage_Catalog_Model_Category؟
-
13-12-2019 - |
سؤال
لدي الكود أدناه وأريد استبعاد معرف الفئة 70 من المجموعة، لكنني حاولت باستخدام:
$_productCollection->addAttributeToFilter('category_id', array('nin'=>'70'));
ولا يعمل
$category = new Mage_Catalog_Model_Category();
$category->load();
$_productCollection = $category->getProductCollection();
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($_productCollection);
$_productCollection->addAttributeToFilter('visibility',4)->addAttributeToSelect('*');
// $_productCollection->addAttributeToFilter('category_id', array('nin'=>'70'));
$_productCollection->getSelect()->order('RAND()');
$_productCollection->addAttributeToFilter('status',1);
$_productCollection->getSelect()->limit(20);
المحلول
يمكنك استخدام ال addCategoryIds()
الطريقة لتمكين تصفية معرفات الفئات، مثل هذا:
$productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addCategoryIds()
->addAttributeToFilter('category_id', array(array('nin'=>'70')))
->addAttributeToFilter('visibility', 4)
->addAttributeToFilter('status', 1);
Mage::getSingleton('cataloginventory/stock')
->addInStockFilterToCollection($productCollection);
$productCollection->getSelect()
->order('RAND()')
->limit(20);
$productCollection->load();
لا تنتمي إلى magento.stackexchange