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

时间:2014-07-07 11:09:13

标签: php magento

我创建了自定义送货模块并收到以下错误:

致命错误:在 /home/devjoand/public_html/includes/src/Mage_Shipping_Model_Shipping.php 上的非对象上调用成员函数setStore() 421

我删除了此发货模块的所有文件,包括.xml,它仍然给我同样的错误。它不会将我发送到送货方式并停止执行savebilling控制器并出现上述错误。我已经清除缓存/会话并重新编译但没有任何作用。任何帮助,将不胜感激。提前谢谢!

注意:它在我的本地计算机上运行正常,但不能在生产服务器上运行。

1 个答案:

答案 0 :(得分:2)

正如评论中部分所述,错误来自此代码:

    $obj = Mage::getModel($className);
    if ($storeId) {
        $obj->setStore($storeId);
    }

在上面的代码中,$obj设置为null 您声明已移除了运输公司。
我认为问题出现是因为您没有首先停用运营商 因此在配置表中,运营商似乎已启用,但没有与之关联的模型,因此上述代码失败。

要解决此问题,请在表格core_config_data中查看包含此路径列的记录:carriers/CARRIER_CODE_HERE/active,其中CARRIER_CODE_HERE是您刚刚删除的送货方式的代码。

找到该行后,将其删除。实际上删除所有包含carriers/CARRIER_CODE_HERE/%之类路径的内容 如果我错了,请务必先备份您的数据库。