Magento 1.7致命错误:Mage.php中找不到类'Mage_Profile_Helper_Data'

时间:2013-09-06 15:23:51

标签: php class magento

当我尝试转到前端的用户个人资料页面时,我不断收到此消息。有人可以帮我找到解决方案。我对Magento很新。

致命错误:Class' Mage_Profile_Helper_Data'在第546行的/home/.../public_html/store/app/Mage.php中找不到

另外,我认为这最近有效,但我只对主题进行了一些css更改,所以不确定我怎么能打破这个。

我还从管理面板重新编译和禁用了编译。

更新

我在Data.php中找到了这个:

class MYSITE_Profile_Helper_Data extends Mage_Core_Helper_Abstract{

    public function getProfilesUrl(){
        return Mage::getUrl('profile/profile/index');
    }
}

我在app / etc / modules / MYSITE_Profile.xml

中找到了这个
<config>
<modules>
    <MYSITE_Profile>
        <active>true</active>
        <codePool>local</codePool>
        <depends>
            <Mage_Core />
        </depends>
    </MYSITE_Profile>
</modules>
</config>

3 个答案:

答案 0 :(得分:4)

在这种情况下,您正在处理自定义模块,因为没有Mage_Profile模块。通常,“缺少数据助手”问题是模块开发人员指定翻译字符串并且无法提供适当类的结果。

当要求Magento通过其工厂方法实例化一个辅助(或块或模型)类时,它接受参数(在这种情况下为profile)并尝试将其解析为特定的Xpath节点。如果应用程序没有找到此节点,它将假定参数是核心的一部分,因此将在mage_之前添加,添加类类型(helper),并附加类ID(帮助者是data)。有关详细信息,请参阅Mage_Core_Model_Config::getGroupedClassName()

您需要在 app/code/community/ app/code/local/ app/design/frontend/ 中搜索XML文件对于字符串"profile"(包括双引号)。这是此问题最常见的向量。

也可以通过几种工厂方法实例化助手(不幸的是)。通过为字符串.php.phtml添加 ('profile') ('profile/data') 文件,可以发现这些内容。

最终,您正在寻找一个自定义模块,您需要为帮助者配置profile类组。这将是例如 The/Module/etc/config.xml 以及您要创建/添加的内容如下:

<global>
    <helpers>
        <profile><!-- class group -->
            <class>The_Module_Helper</class><!-- class prefix -->
        </profile>
    </helpers>
</global>

然后您只需定义The_Module_Helper_Data类,如下所示(例如 The/Module/Helper/Data.php

<?php
class The_Module_Helper_Data extends Mage_Core_Helper_Abstract
{
}

执行此操作后,您的应用程序应该可以正常工作,您应该限制原始开发人员: - )

答案 1 :(得分:2)

你应该在profile模块的helper文件夹中创建一个名为data.php的文件 。这就是为什么你应该总是在你的扩展中包含数据助手。所以app/code/local/MYSITE/Helper/Data.php

中的代码如下
class Mage_Profile_Helper_Data extends Mage_Core_Helper_Abstract
{

}

<global>
    <helpers>
        <profile>
            <class>MYSITE_Profile_Helper</class>
        </profile>
    </helpers>
</global>
<{1>}中的

应该足够了。

答案 2 :(得分:0)

此错误是由autoloader.php文件引起的。要解决它,请不要使用&#34; _&#34;在文件名中的任何地方,特别是在config.xml中,它将被&#34; /&#34;替换。并抛出这样的错误。

例: giftcard_confirm.html

Insted使用: giftcardconfirm.html