当我尝试从管理面板创建可配置产品时,出现以下错误。
致命错误:在非对象上调用成员函数 setProductFilter()
我没有尝试任何特别的东西。我刚刚转到“添加产品”并选择“默认”属性集并从下拉列表中选择“可配置产品”并点击继续。但我无法创建可配置的产品。
它在以下行中显示错误
\app\code\core\Mage\Catalog\Model\Product\Type\Configurable.php 在第 294 行
有人可以帮我吗?
当我尝试从管理面板创建可配置产品时,出现以下错误。
致命错误:在非对象上调用成员函数 setProductFilter()
我没有尝试任何特别的东西。我刚刚转到“添加产品”并选择“默认”属性集并从下拉列表中选择“可配置产品”并点击继续。但我无法创建可配置的产品。
它在以下行中显示错误
\app\code\core\Mage\Catalog\Model\Product\Type\Configurable.php 在第 294 行
有人可以帮我吗?
If your Problem is - magento Call to a member function setProductFilter() on a non-object in app/code/core/Mage/Catalog/Model/Product/Type/Configurable.php on line 294
Go to -
app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/
And see there are the Collection.php file exist or not.
I thing there are Collection.php file exist but the file extension is not correct format.
You can change the extension only, Make it Collection.php
差不多 2 年过去了,我刚刚在 Magento 1.9.0.1 中遇到了同样的(嗯,非常相似的)问题。我找到了原因,这让我感到非常惊讶。
注意:我在文件路径中使用反斜杠,因为我使用的是 Windows。我看到OP也是。以防万一有人要指出我的“错误”。:o)
第 294 行的 \app\code\core\Mage\Catalog\Model\Product\Type\Configurable.php 如下所示:
return Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')->setProductFilter($this->getProduct($product));
这应该做以下三件事:
$this->getProduct($product)
Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')
setProductFilter
方法,传入产品对象它在第 2 步失败,因为Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')
尝试使用文件 \app\code\core\Mage\Catalog\Model\Resource\Product\Type\Configurable\Attribute\Collection.php,至少在我的情况下 - 没有存在。
确切地说,该文件存在,但扩展名错误 - .ph 而不是 .php。似乎 Magento CE 1.9.0.1 是这样发布的。也许其他版本也会受到同样的影响。
Magento CE 1.9.0.1 有 3 种格式:.zip、.tar.gz 和 .tar.bz2。我将 .tar.gz 版本下载到 Windows 8.1 系统上,并使用 GnuWin 的 gzip for Windows 和 tar for Windows(两个命令行实用程序)将其解压缩。可能由于我选择下载和提取的特定方式和/或由于我使用的操作系统而损坏了某些东西。或者这个文件可能只是在源头上命名错误。无论哪种方式,将其重命名为 .php 为我解决了这个问题。
希望这对某人有所帮助-因为我可以看到这是一个受欢迎的话题:oD