Php 对magento中的非对象调用成员函数setStore()
我已创建自定义装运模块,并出现以下错误: 致命错误:在第421行的/home/devjoand/public_html/includes/src/Mage_Shipping_Model_Shipping.php中对非对象调用成员函数setStore() 我删除了这个运输模块的所有文件,包括.xml,但它仍然给我同样的错误。它不会将我发送到shipping方法,并使用上述错误停止savebilling控制器的执行。我已清除缓存/会话并重新编译,但没有任何效果。任何帮助都将不胜感激。提前谢谢Php 对magento中的非对象调用成员函数setStore(),php,magento,Php,Magento,我已创建自定义装运模块,并出现以下错误: 致命错误:在第421行的/home/devjoand/public_html/includes/src/Mage_Shipping_Model_Shipping.php中对非对象调用成员函数setStore() 我删除了这个运输模块的所有文件,包括.xml,但它仍然给我同样的错误。它不会将我发送到shipping方法,并使用上述错误停止savebilling控制器的执行。我已清除缓存/会话并重新编译,但没有任何效果。任何帮助都将不胜感激。提前谢谢 注意:
注意:它在我的本地计算机上工作正常,但在生产服务器上不工作。如注释中部分所述,错误来自以下代码:
$obj = Mage::getModel($className);
if ($storeId) {
$obj->setStore($storeId);
}
在上面的代码中,$obj
设置为null
您声明您已删除了一家运输公司。
我认为出现问题是因为您没有首先停用运营商。
因此,在配置表中,运营商似乎已启用,但没有与之关联的模型,因此上述代码失败 为了解决此问题,请在表
core\u config\u data
中查找具有以下路径列的记录:carriers/CARRIER\u code\u HERE/active
,其中CARRIER\u code\u HERE
是您刚刚删除的装运方法的代码
找到线路后,将其移除。实际上,删除所有具有类似于carriers/CARRIER\u code\u此处/%%
路径的内容请确保首先备份数据库,以防我出错。我不知道如何帮助您,因为您没有提供代码。无论如何,您可以读取:。您认为是一个对象的变量,您试图调用它的
setStore()
不是一个对象。因此,您正在尝试实例化一个对象,如,$obj=new obj()
和尝试调用$obj->setStore()
,但您的$obj
未能实例化。将其包装在try catch
块中并转储异常,以查看是否存在错误。填写账单信息后,我收到错误,然后单击“继续”。基本上,我已经删除了我的定制运输模块和清除缓存,所以我认为默认的Magento运输方法应该可以工作,但它给了我错误。