Php 在Magento中加载带有新支付模块的购物车时,我遇到了一个错误&x27;我找不到
我正在尝试向Magento添加一个新的支付模块。然而,即使在注释掉绝大多数代码后,我仍然得到以下错误:Php 在Magento中加载带有新支付模块的购物车时,我遇到了一个错误&x27;我找不到,php,magento,Php,Magento,我正在尝试向Magento添加一个新的支付模块。然而,即使在注释掉绝大多数代码后,我仍然得到以下错误: Fatal error: Call to a member function isAvailable() on a non-object in /var/www/html/app/code/core/Mage/Payment/Helper/Data.php on line 71 我正在使用Magento 1.4.0.1,并已禁用缓存。为了以防万一,我甚至清空了几次缓存 目前唯一没有注释掉的
Fatal error: Call to a member function isAvailable() on a non-object in /var/www/html/app/code/core/Mage/Payment/Helper/Data.php on line 71
我正在使用Magento 1.4.0.1,并已禁用缓存。为了以防万一,我甚至清空了几次缓存
目前唯一没有注释掉的代码是基于教程和
从管理区域或前端加载购物车时,会发生此错误
有没有人遇到过类似的问题?我会发布代码,但我不确定需要发布什么
谢谢你的帮助
编辑 app/etc/modules/CPAP_All.xml
<?xml version="1.0"?>
<config>
<modules>
<CPAP_AuthorizeCim>
<active>true</active>
<codePool>local</codePool>
</CPAP_AuthorizeCim>
</modules>
</config>
如果我从config.xml中注释掉
authorizecim/paymentmethod
,则错误会消失,但我的付款选项不会显示为购物车中的选项。看起来您已经添加到配置中(可能在模块的config.xml文件中)以启用新的付款方法。Magento正在尝试为您的付款方法加载一个类,但由于它想要的类不存在,因此出错。请提供您所做的XML更改以及您定义为模块一部分的任何新模型
谢谢!
Joe(这篇文章中的self链接是半自动的,但我似乎(至少现在)是非官方的Magento开发者指南)
这是导致您出现问题的代码(在上面提到的Data.php文件中)
Magento正在搜索要在调用getModel(实例化模型)时使用的类名或URI样式路径
$methodInstance = Mage::getModel('authorizecim/paymentmethod');
所以,您的问题是authorizecim/paymentmethod没有像预期的那样解析为Magento类名。(如果不遵循此步骤,请尝试(演示中的Class/URI查找选项卡)
因此,authorizecim/paymentmethod将解析为类名
CPAP_AuthorizeCim_Model_Paymentmethod
authorizecim == look in config for this name in the <models /> section
and use it's value as a basename (CPAP_AuthorizeCim_Model)
paymentmethod = append this with underscore word upper casing
(Paymentmethod) and append to above string to give us
CPAP_AuthorizeCim_Model_Paymentmethod
这是你的PHP文件,它给我们带来了你的问题
CPAP_AuthorizeCim_Model_Authorizenet
当需要命名时
CPAP_AuthorizeCim_Model_Paymentmethod
我添加了你要求的代码。谢谢你的回复。好名字,顺便说一句。谢谢你的详细回答和解释。我实际上已经浏览了你的网站好几次,包括你的教程,而这一次似乎刚刚从我身边溜走。现在有意义了。再次感谢。好的。我按照你推荐的Alan更改了类名,但是e错误仍在发生。我可以通过向类中添加“extends Mage\u Payment\u Model\u Method\u Abstract”来删除错误。不过感谢您的帮助。
CPAP_AuthorizeCim_Model_Paymentmethod
authorizecim == look in config for this name in the <models /> section
and use it's value as a basename (CPAP_AuthorizeCim_Model)
paymentmethod = append this with underscore word upper casing
(Paymentmethod) and append to above string to give us
CPAP_AuthorizeCim_Model_Paymentmethod
CPAP/AuthorizeCim/Model/Paymentmethod.php
CPAP_AuthorizeCim_Model_Authorizenet
CPAP_AuthorizeCim_Model_Paymentmethod