Magento-在非对象上调用成员函数getId()

奇怪的鸭子

我有以下代码,显示当前类别中的5种产品(类别为cat:63):

$_helper    = $this->helper('catalog/output');
$_category  = $this->getCurrentCategory();   
$collection = $_category->getProductCollection();
Mage::getModel('catalog/layer')->prepareProductCollection($collection);
$numProducts = 5;
$collection->setPage(1, $numProducts)->load();

这工作正常,但我想进一步调整,因此它只显示在另一个类别(产品目录ID:71)中也找到的产品,$collection->addCategoryFilter(71);但是当我这样做时,我得到了错误:

Fatal error: Call to a member function getId() on a non-object in

完整的代码是:

$_helper    = $this->helper('catalog/output');
$_category  = $this->getCurrentCategory();   
$collection = $_category->getProductCollection();
Mage::getModel('catalog/layer')->prepareProductCollection($collection);

// this line throws the error
$collection->addCategoryFilter(71);

$numProducts = 5;
$collection->setPage(1, $numProducts)->load();


foreach($collection as $_product){
    // output products...
};

这行是不正确的

$collection->addCategoryFilter(71);

我猜您正在尝试过滤ID = 71的类别。对吗?如果是这样,您可以按照以下方式进行操作:

$catToFilter = Mage::getModel('catalog/category')->load(71);
$collection->addCategoryFilter($catToFilter);

出现问题的原因是,当类别过滤器方法需要一个对象时,您正在提供ID。因此,您将获得ID为71的类别对象,并将其作为参数传递。

================================================== ===============================

更新:仅显示两个类别中共有的产品。

// 1st category
$cat1 = Mage::getModel ('catalog/category')->load(63);

//2nd category
$cat2 = Mage::getModel ('catalog/category')->load(71);

//loading cat2 products
$collection = $cat2->getProductCollection();

//this keeps the common products and remaining products of cat1
$collection->addCategoryFilter($cat1);

$removeList = array();
foreach ($collection as $prod)
{
  $prodCatIds = $prod->getCategoryIds();
  //if the current collection products does not lie in cat2
  if (! in_array($cat2->getId(), $prodCatIds))
  {
    //creating a list of product ids that are not common 
    array_push($removeList , $prod->getId());
  }

}

//removing the UNCOMMON products from the collection
foreach($removeList as $rl)
  $collection->addAttributeToFilter('entity_id', array('neq' => $rl)) ;

//The collection is now ready
foreach($collection->getData() as $_product){
  //$_product details or load product object
  zend_debug::dump($_product['sku']);
}

有点肮脏的方法,但希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Magento致命错误:在非对象上调用成员函数addFieldToFilter()

来自分类Dev

在非对象上调用成员函数getResourceId()-Magento CE

来自分类Dev

在magento中的非对象上调用成员函数setStore()

来自分类Dev

Magento致命错误:在非对象上调用成员函数save()

来自分类Dev

Magento-在非对象上调用成员函数getOptionArray()

来自分类Dev

在非对象上调用成员函数getResourceId()-Magento CE

来自分类Dev

Magento致命错误:在非对象上调用成员函数addFieldToFilter()

来自分类Dev

在magento中的非对象上调用成员函数setStore()

来自分类Dev

在magento 1.9中的非对象上调用成员函数getSortedChildren()

来自分类Dev

Magento致命错误:在非对象上调用成员函数save()

来自分类Dev

magento 1.9主页上的分层导航在发生错误的非对象上调用成员函数load()

来自分类Dev

magento 1.9主页上的分层导航在发生错误的非对象上调用成员函数load()

来自分类Dev

错误:在非对象上调用成员函数getId()

来自分类Dev

致命错误:在第463行上的/Applications/XAMPP/xamppfiles/htdocs/magento/app/Mage.php中的非对象上调用成员函数getModelInstance()

来自分类Dev

在非对象上调用成员函数fetchAll()

来自分类Dev

在非对象上调用成员函数fill()

来自分类Dev

在非对象上调用成员函数getClientOriginalName()

来自分类Dev

在非对象上调用成员函数getAction()

来自分类Dev

PHP:在非对象上调用成员函数...

来自分类Dev

在非对象上调用成员函数describetable()

来自分类Dev

在非对象上调用成员函数getAttribute()

来自分类Dev

在非对象上调用成员函数bindValue()

来自分类Dev

在非对象上调用成员函数getElementById()

来自分类Dev

“在非对象上调用成员函数 userList()”

来自分类Dev

Magento 2致命错误:在字符串上调用成员函数getAttributeText()

来自分类Dev

FatalErrorException:错误:在非对象中调用成员函数getId()

来自分类Dev

Magento致命错误:调用成员函数addData()

来自分类Dev

Magento中的调用函数

来自分类Dev

在非对象Laravel 4.2上调用成员函数where()

Related 相关文章

  1. 1

    Magento致命错误:在非对象上调用成员函数addFieldToFilter()

  2. 2

    在非对象上调用成员函数getResourceId()-Magento CE

  3. 3

    在magento中的非对象上调用成员函数setStore()

  4. 4

    Magento致命错误:在非对象上调用成员函数save()

  5. 5

    Magento-在非对象上调用成员函数getOptionArray()

  6. 6

    在非对象上调用成员函数getResourceId()-Magento CE

  7. 7

    Magento致命错误:在非对象上调用成员函数addFieldToFilter()

  8. 8

    在magento中的非对象上调用成员函数setStore()

  9. 9

    在magento 1.9中的非对象上调用成员函数getSortedChildren()

  10. 10

    Magento致命错误:在非对象上调用成员函数save()

  11. 11

    magento 1.9主页上的分层导航在发生错误的非对象上调用成员函数load()

  12. 12

    magento 1.9主页上的分层导航在发生错误的非对象上调用成员函数load()

  13. 13

    错误:在非对象上调用成员函数getId()

  14. 14

    致命错误:在第463行上的/Applications/XAMPP/xamppfiles/htdocs/magento/app/Mage.php中的非对象上调用成员函数getModelInstance()

  15. 15

    在非对象上调用成员函数fetchAll()

  16. 16

    在非对象上调用成员函数fill()

  17. 17

    在非对象上调用成员函数getClientOriginalName()

  18. 18

    在非对象上调用成员函数getAction()

  19. 19

    PHP:在非对象上调用成员函数...

  20. 20

    在非对象上调用成员函数describetable()

  21. 21

    在非对象上调用成员函数getAttribute()

  22. 22

    在非对象上调用成员函数bindValue()

  23. 23

    在非对象上调用成员函数getElementById()

  24. 24

    “在非对象上调用成员函数 userList()”

  25. 25

    Magento 2致命错误:在字符串上调用成员函数getAttributeText()

  26. 26

    FatalErrorException:错误:在非对象中调用成员函数getId()

  27. 27

    Magento致命错误:调用成员函数addData()

  28. 28

    Magento中的调用函数

  29. 29

    在非对象Laravel 4.2上调用成员函数where()

热门标签

归档