Macenta: Önemli hata: Sınıf 'Mage_Giftcards_Helper_Data' bulunamadı… / app / Mage.php satır 546


16

Önemli bir hata veren bir modül uzantısı yükledim

"Önemli hata: 'Mage_Giftcards_Helper_Data' sınıfı yönetici içinde .... / app / Mage.php on line 546'da bulunamadı".

Bu bağlantıyı /programming//a/9191286/2919940 ve bu bağlantıyı da /magento//a/7133/3693 yeniden ekledim

Ama benim var

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

benim config.xmlve bu sınıfa sahibim

class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}

/app/code/local/Webtex/Giftcards/Helper/Data.phpyolunda beyan etti .

Derleyici devre dışı bıraktım ve boş var/cachedizin yaparak önbelleği temizledim .

Ben her yerde config.xmlyardımcı sınıf tanımlamalı olması gerekir bulundu ve Data.php bu yardımcı sınıf ilan gerekir.

Ama her ikisi de benim durumumda var, bu hatanın nedeni ne olabilir? Bu modülü taze macenta kurulumumda da test ettim,

Magento sürümü 1.7.0.2

Lütfen bu hata için yardım sağlayın ?? Sınıf isimleri çatışmaları varsa bunu nasıl ayıklayabiliriz ??

Teşekkürler


Cevabımda ihtiyacınız olan herhangi bir ek bilgi olup olmadığını veya bir güncellemeniz olup olmadığını bize bildirin.
philwinkle

Yanıtlar:


20

Bu, eksik bir yardımcıya başvururken yaygındır. Çoğu durumda sınıf adının kendisi yanlış biçimlendirilmiş veya buna atıfta bulunan kısa adınız yanlıştır, bu nedenle Magento bu adreste yol arar Mage_Giftcards_Helper_Data(aşağıdaki örnek 1'e bakın). Aşağıdaki örnekler için adlı bir modül kurdum MyCompany_MyModule.

Bunlar, yardımcıları tanımlamakla endişelenmenin birçok yolundan sadece birkaçı:


Hatalı yardımcı sınıf takma adı:

Yardımcımı şöyle ifade ederim:

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

Hatayı alıyorum:

Fatal error: Class 'Mage_Mycompany_Helper_Data' not found

Ne yanlış gitti?

Yardımcı sınıf takma adım şöyle tanımlanıyor mymodule:

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

Kısa kodumu değiştirmek Mage::helper('mymodule')istenen sonucu verdi.


Hatalı oluşturulmuş sınıf adı

Yardımcımı referans alıyorum (bu sefer doğru şekilde):

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

Aldım:

Fatal error: Class 'MyCompany_MyModule_Helper_Data' not found

Ne yanlış gitti?

Sınıf tanımımda "_Data" eksik:

class MyCompany_MyModule_Helper extends Mage_Core_Helper_Abstract
{


}

Yardımcı / Özel:

Bu, "Data.php" adlı bir dosyada yardımcı bir sınıfa başvurmaya çalıştığınızda olana benzer.

Yardımcımı şöyle ifade ederim:

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

Modül yardımcı yolum şöyle tanımlandı:

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

App / code / local / Şirketim / MyModule / Helper / Custom.php dosyasında bir sınıf dosyası var

Hatayı alıyorum:

Fatal error: Class 'Mage_Custom_Helper_Data' not found

Ne yanlış gitti?

Belirli bir modüldeki diğer yardımcı sınıflarını modül yardımcısının kısa adına alt yollar olarak belirtmeniz gerekir. Bu, blokların ve modellerin çalışma şekline benzer - ancak en üst düzeyde alt klasör yoktur.

Bu hatayı Custom.php yardımcı sınıf dosyama başvurarak düzeltirim:

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

Aşağıdaki bağlantıyı kontrol edin ayrıca yardımcı yardımcı bir sorun olabilir stackoverflow.com/questions/19590164/…
Neeraj Garg

4

Bu yalnızca enable derleyici ile uzantı yüklediğinizde olur İşte yapmanız gerekenler

1 Adım uygulaması / etc / module / modülünü yakın zamanda kurduğunuz modül devre dışı

2 Adım admin / system / tools derleyicisine giriş derleyiciyi devre dışı bırak

iyi şanslar


1
  1. Altında Data.php dosyasının var olduğundan emin olun

codepool/extension_name/module_name/Helper/Data.php

  1. Yukarıda belirtilen dizinde bulunan Data.php bu dosyayı açar ve sınıf adını kopyalarsa, temelde Magento adlandırma algısına sahip sınıf adı

packagegename_modulename_foldername (Yardımcı veya Engelle) _ dosyaadı (Data.php)

<?php

class package_module_Helper_Data{

}
  1. Magento kök klasörüne taşıyın ve eğer emin package_module_Helper_Data.php şimdiki

includes/src/

  1. Görmüyorsanız, src dizini altında bu ada sahip bir php dosyası oluşturun (hataya sahipsiniz)
  2. Data.php içeriğini kopyalayın ve yeni oluşturulan dosyaya yapıştırın. Eminim sana yardımcı olacak
  3. Yine de, uzantı hakkında hiçbir şey göstermeyen hata veya macenta alırsanız, magento Sistem-> Araçlar-> Derleme altında derleme modunu devre dışı bırakmanız yeterlidir.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.