Magento: घातक त्रुटि: कक्षा 'Mage_Giftcards_Helper_Data' में नहीं मिला ... / लाइन 546 पर app / Mage.php


16

मैंने एक मॉड्यूल एक्सटेंशन स्थापित किया है जो एक घातक त्रुटि फेंकता है

"घातक त्रुटि: क्लास 'Mage_Giftcards_Helper_Data' व्यवस्थापक में नहीं मिला ... / / app / Mage.php ऑन लाइन 546" व्यवस्थापक में।

मैंने इस लिंक /programming//a/9191286/2919940 और इस लिंक को /magento//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 संस्करण 1.7.0.2 है

कृपया इस त्रुटि के लिए सहायता प्रदान करें ?? अगर वर्ग नामों का टकराव है तो हम उस पर बहस कैसे कर सकते हैं ??

धन्यवाद


मुझे बताएं कि क्या कोई अतिरिक्त जानकारी है जो आपको मेरे उत्तर से चाहिए या यदि आपके पास कोई अपडेट है।
फिलिंकल करें

जवाबों:


20

लापता सहायक को संदर्भित करते समय यह आम है। कई मामलों में वर्ग का नाम ही विकृत है या आपके शॉर्टनाम का संदर्भ देते हुए यह गलत है, यही कारण है कि मैगेंटो इसे रास्ते में 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

क्या गलत हुआ?

मेरी कक्षा की परिभाषा "_Data" गायब थी:

class MyCompany_MyModule_Helper extends Mage_Core_Helper_Abstract
{


}

हेल्पर / कस्टम:

यह तब होता है जब आप "Data.php" नाम की फ़ाइल के भीतर किसी सहायक वर्ग को संदर्भित करने का प्रयास करते हैं।

मैं अपने सहायक के रूप में संदर्भित करता हूं:

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

मेरे मॉड्यूल सहायक पथ को इस प्रकार परिभाषित किया गया था:

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

मेरे पास ऐप / कोड / लोकल / MyCompany / MyModule / Helper / Custom.php में एक क्लास फ़ाइल है

मुझे त्रुटि मिली:

Fatal error: Class 'Mage_Custom_Helper_Data' not found

क्या गलत हुआ?

आपको अपने मॉड्यूल हेल्पर के शॉर्टनाम के उप-पथ के रूप में एक विशेष मॉड्यूल में अन्य सहायक वर्गों को निर्दिष्ट करने की आवश्यकता है। यह उसी तरह है जैसे ब्लॉक और मॉडल कैसे काम करते हैं - लेकिन सबसे ऊपरी स्तर पर कोई सबफ़ोल्डर नहीं है।

मैं इस त्रुटि को अपने Custom.php सहायक वर्ग फ़ाइल को संदर्भित करके ठीक करता हूं:

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

निम्नलिखित लिंक की जाँच करें यह भी लापता सहायक stackoverflow.com/questions/19590164/…
नीरज गर्ग

4

यह केवल तब होता है जब आप सक्षम कंपाइलर के साथ एक्सटेंशन इंस्टॉल करते हैं यहां आपको क्या करना है

1 चरण ऐप / आदि / मॉड्यूल / आपका मॉड्यूल जिसे आपने हाल ही में अक्षम मॉड्यूल स्थापित किया है

2 स्टेप लॉग इन एडमिन / सिस्टम / टूल्स कंपाइलर डिसएबल कंपाइलर अपलोड कोड को दोबारा अपलोड करें यह ठीक काम करेगा फिर आप अपने कोड को फिर से कंपाइल कर सकते हैं

सौभाग्य


1
  1. सुनिश्चित करें कि Data.php फ़ाइल आपके अंतर्गत मौजूद है

codepool/extension_name/module_name/Helper/Data.php

  1. यदि उपर्युक्त निर्देशिका में मौजूद Data.php उस फ़ाइल को खोलता है और क्लास का नाम कॉपी करता है, तो मूल रूप से Magento के नामकरण की तरह क्लास का नाम

packagename_modulename_foldername (हेल्पर या ब्लॉक) _ फ़ाइल नाम (Data.php)

<?php

class package_module_Helper_Data{

}
  1. Magento रूट फ़ोल्डर में जाएं और सुनिश्चित करें कि पैकेज_module_Helper_Data.php में मौजूद है

includes/src/

  1. यदि आपको दिखाई नहीं दे रहा है, तो src डायरेक्टरी के तहत उस नाम से एक php फाइल बनाएं (जो आपको गलती से मिली थी)
  2. Data.php की सामग्री को कॉपी करें और नई बनाई गई फ़ाइल में पेस्ट करें। मुझे यकीन है कि यह आपकी मदद करेगा
  3. फिर भी अगर आपको एक्सटेंशन के बारे में कुछ भी नहीं दिखाते हुए त्रुटि या मैगेंटो मिलता है, तो बस Magento सिस्टम के तहत संकलित मोड को अक्षम करें-> उपकरण-> संकलन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.