Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Magento中加载带有新支付模块的购物车时,我遇到了一个错误&x27;我找不到_Php_Magento - Fatal编程技术网

Php 在Magento中加载带有新支付模块的购物车时,我遇到了一个错误&x27;我找不到

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,并已禁用缓存。为了以防万一,我甚至清空了几次缓存 目前唯一没有注释掉的

我正在尝试向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,并已禁用缓存。为了以防万一,我甚至清空了几次缓存

目前唯一没有注释掉的代码是基于教程和

从管理区域或前端加载购物车时,会发生此错误

有没有人遇到过类似的问题?我会发布代码,但我不确定需要发布什么

谢谢你的帮助


编辑

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