Magento: Фатальная ошибка: Класс "Вспомогательные данные подарочных карт мага" не найден в.../app/Mage.php на линии 546


Я установил одно расширение модуля, которое выдает фатальную ошибку

"Фатальная ошибка: класс 'mage_giftcards_helper_data' не найден в..../app/Mage.php в строке 546"в администраторе.

Я переадресовал эту ссылку https://stackoverflow.com/a/9191286/2919940 и эта ссылка также https://magento.stackexchange.com/a/7133/3693

Но у меня есть

<global>
<helpers>
        <giftcards>
            <class>Webtex_Giftcards_Helper</class>
        </giftcards>
    </helpers>
</global>

В моем config.xml и у меня есть этот класс

class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}

Объявлено на пути /app/code/local/Webtex/Giftcards/Helper/Data.php.

Я отключил компилятор и очистил кэш, сделав пустой каталог var/cache.

Я везде находил, что config.xml должен иметь вспомогательный класс, определяющий и Data.php должен был объявить этот вспомогательный класс.

Но в моем случае они оба есть, в чем может быть причина этой ошибки? Я также протестировал этот модуль на своей новой установке magento,

Версия Magento 1.7.0.2

Пожалуйста, помогите устранить эту ошибку?? Если есть классовые конфликты имена как мы можем это отладить??

Спасибо

Author: Community, 2013-10-25

3 answers

Это часто встречается при ссылке на отсутствующего помощника. Во многих случаях само имя класса искажено или ваше краткое имя, ссылающееся на него, неверно, поэтому Magento ищет его в пути Mage_Giftcards_Helper_Data (см. Пример 1 ниже). Для следующих примеров я настроил модуль под названием MyCompany_MyModule.

Это лишь некоторые из многих способов, которыми вы можете ошибиться с определением помощников:


Неверный псевдоним вспомогательного класса:

Я ссылаюсь на своего помощника как:

$helper = Mage::helper('mycompany');

Я получаю ошибку:

Fatal error: Class 'Mage_Mycompany_Helper_Data' not found

Что пошло не так?

Мой псевдоним вспомогательного класса определяется как mymodule:

<helpers>
    <mymodule>
        <class>MyCompany_MyModule_Helper</class>
    </mymodule>
</helpers>

Изменение моего шорткода на Mage::helper('mymodule') привело к желаемому результату.


Неправильное имя класса

Я ссылаюсь на своего помощника (на этот раз правильно):

$helper = Mage::helper('mymodule');

Я получаю:

Fatal error: Class 'MyCompany_MyModule_Helper_Data' not found

Что пошло не так?

Мое определение класса отсутствовало "_данные":

class MyCompany_MyModule_Helper extends Mage_Core_Helper_Abstract
{


}

Помощник/Пользователь:

Это похоже на то, что происходит, когда вы пытаетесь сослаться на вспомогательный класс в файле без имени"Data.php ".

Я ссылаюсь на своего помощника как:

$helper = Mage::helper('custom');

Мой вспомогательный путь к модулю был определен как:

<helpers>
    <mymodule>
        <class>MyCompany_MyModule_Helper</class>
    </mymodule>
</helpers>

У меня есть файл класса в app/code/local/MyCompany/MyModule/Helper/Custom.php

Я получаю ошибку:

Fatal error: Class 'Mage_Custom_Helper_Data' not found

Что пошло не так?

Вам необходимо указать другие вспомогательные классы в определенном модуле в качестве вложенных путей к короткому имени вашего помощника по модулю. Это похоже на то, как работают блоки и модели, но на самом верхнем уровне нет вложенной папки.

Я исправляю эту ошибку, ссылаясь на свой Custom.php файл вспомогательного класса как таковой:

$helper = Mage::helper('mymodule/custom');
 20
Author: philwinkle, 2013-10-25 16:28:49

Это происходит только при установке расширения с включенным компилятором Вот что вам нужно сделать

1 Шаг приложение/etc/модуль/ваш модуль, который вы недавно установили, отключите модуль

2 Шаг Войдите в систему администратора/система/инструменты, чтобы отключить компилятор, снова загрузите код, он будет работать нормально, затем вы сможете снова скомпилировать свой код

Удачи

 4
Author: Zuby, 2016-05-20 08:40:38
  1. Убедитесь, что Data.php файл, присутствующий под вашим

codepool/extension_name/module_name/Helper/Data.php

  1. Если Data.php присутствующий в вышеупомянутом каталоге откройте этот файл и скопируйте имя класса, в основном имя класса, имеющее смысл именования Magento, например

Имя_модуля Имя_папки пакета (Помощник или блок) _ имя файла(Data.php)

<?php

class package_module_Helper_Data{

}
  1. Перейдите в корневую папку magento и убедитесь, что package_module_Helper_Data.php присутствует в

includes/src/

  1. Если вы не видите, создайте php-файл с этим именем (которое вы получили по ошибке) в каталоге src
  2. Копировать содержимое Data.php и вставьте его во вновь созданный файл, вот и все. Я уверен, что это поможет вам
  3. Тем не менее, если вы получаете ошибку или magento ничего не показывает о расширении, просто отключите режим компиляции в разделе Система magento->Инструменты->Компиляция
 1
Author: Jegan, 2015-02-19 12:08:09