Magento致命错误:Class' Mage_Wsalogger_Helper_Data'在546行的/app/Mage.php中找不到

时间:2014-08-06 14:59:26

标签: php magento zend-framework

我们使用的是webshopapps / wsalogger扩展程序。它运作良好。突然它在结账页面上出现了问题,并且出现了如下错误:

Fatal error: Class 'Mage_Wsalogger_Helper_Data' not found in /var/data/www/example.com/app/Mage.php on line 546

我从etc模块禁用了扩展,但它仍然显示错误。是否有任何流程可以在结帐页面上跳过此错误?

3 个答案:

答案 0 :(得分:3)

Magento正在寻找你的分机帮助班,但却无法找到。这就是它抱怨的原因。

所以解决方案是添加辅助类。因此,请使用以下内容创建此助手类。

档案位置:app/code/<community> | <local> /Webshopapps/Wsalogger/Helper/Data.php

<?php
class Webshopapps_Wsalogger_Helper_Data extends Mage_Core_Helper_Abstract {
}

这将解决此问题

注意:我不知道您的扩展程序所在的代码池。它可能位于communitylocal中。请在这两个位置查看您的扩展程序并添加此帮助程序

修改

根据您的评论,我了解您在扩展程序中定义了帮助程序类。那么我知道持续存在这个问题的唯一原因就是在你的扩展程序内或Magento内某处某个错误的帮助类调用

为了调试,您可以使用以下信息。

帮助定义

Helper类在扩展的配置文件中定义。在configuratin文件中,您可以看到代码有点像这样。

#FILE LOCATION : app/code/community/Webshopapps/Wsalogger/etc/config.xml

<config>
    ....
    <global>
        <helpers>
            <unique_reference_for_this_helper>
                <class>Webshopapps_Wsalogger_Helper</class>
            </unique_reference_for_this_helper>
        </helpers>
    </global>
</config>

所以我们在这里声明一个唯一引用你的帮助类以及帮助器类声明。使用的关键字是unique_reference_for_this_helper。这意味着它代表助手类的别名。现在它将允许我们像这样调用这个辅助类。

    Mage::Helper('unique_reference_for_this_helper');

原因可能是

在您的情况下,您的助手通话可能会出错。但请不要这样,请仔细检查帮助程序类定义。它应该像我上面描述的那样。这是您的班级名称应为Webshopapps_Wsalogger_Helper_Data,并且应该扩展Mage_Core_Helper_Abstract

答案 1 :(得分:2)

如果Wsalogger名称相关的扩展名不可用,那么代码中应该存在某个地方 class有代码

Mage::helper('wsalogger')

如果在config.xml

中Wsalogger名称相关扩展名为exits then it help helper class is not called
<global>
  <helpers>
<class>ThismoduleNameSpace_Wsalogger_Helper_Data</class>
  </helpers>

</global>

Data.php的代码(module codePool>ThismoduleNameSpace>Wsalogger>Helper)是

<?php
class ThismoduleNameSpace_Wsalogger_Helper_Data extends Mage_Core_Helper_Abstract {
}

答案 2 :(得分:0)

不是启用编译,而是直接单击“运行编译”。这解决了我的问题。

如果您已在编译中单击“启用”并且无法访问管理面板,则转到命令模式并禁用编译过程。然后,您应该可以访问管理面板。一旦您可以访问管理面板,请按照上述步骤操作。