घातक त्रुटि: अपग्रेड के बाद एक गैर-ऑब्जेक्ट पर एक सदस्य फ़ंक्शन को फिर से लिखना ()


12

हमने अपनी Magento की स्थापना को 1.7.0.2 से 1.8.0.0 तक अपग्रेड करने का प्रयास किया। अब हमें सभी पृष्ठों पर निम्नलिखित त्रुटि मिली:

Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php on line 165

हमने सभी कैश को साफ़ करने की कोशिश की, कंपाइलर को निष्क्रिय किया और अनुक्रमणिका को फिर से जोड़ा। पहले आज हमारी स्थानीय स्थापना पर सब कुछ ठीक चला। कुछ आदेशों और क्लाइंट डेटा को छोड़कर यह एक ही इंस्टॉलेशन है।

जब कंपाइलर को सक्षम किया जाता है तो त्रुटि में परिवर्तन होता है:

Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/includes/src/__default.php on line 17761

हम इस त्रुटि को कैसे डीबग कर सकते हैं?


मुझे भी 1.8 मैगनेटो माइन में अपग्रेड किया गया है, कुछ इसी तरह की समस्या है, लेकिन मुझे जो त्रुटि मिल रही है, वह वेरिएन में नहीं है ... नीचे दी गई त्रुटि देखें:> घातक त्रुटि: किसी सदस्य के लिए कॉल करेंProductAttribute () पर> नॉन-ऑब्जेक्ट > /home/shopk3if/public_html/app/design/frontend/base/default/template/catalog/product/price.phtml> लाइन 50 plz मुझे कोड के लिए मेरी मदद करें क्योंकि मैं डेवलपर नहीं हूं ...

क्या आप सुनिश्चित हैं कि आपने संकलन बंद कर दिया है?
ब्रेंटवेटर्सन

@MichaelvanEijden क्या आप इसका मूल कारण जानने में सक्षम थे?
एलन स्टॉर्म

1
@AlanStorm किसी कारण से, नवीनीकरण के दौरान स्थानांतरित फ़ाइलों का केवल एक हिस्सा था। आपके जवाब ने मुझे सही जगह पर पहुंचा दिया। धन्यवाद!
माइकल

मेरे पास एक ही मुद्दा है ..... लेकिन मैंने अब मैगनेटो जिप इंस्टॉलेशन आर्काइव की सामग्री के साथ सभी फाइलों को ओवरराइट करने की कोशिश की .... लेकिन इससे मदद नहीं मिली। यह एक loooong डिबग सत्र बनने जा रहा है! Magento का कोई अद्यतन अब समस्याओं के बिना मेरे लिए काम किया!
cljk

जवाबों:


5

१६५ लाइन में देख रहे हैं

#File: app/code/core/Mage/Core/Controller/Varien/Front.php
$this->_getRequestRewriteController()->rewrite();

विधि _getRequestRewriteControllerको एक वस्तु वापस करना चाहिए। किसी कारण से, यह आपके सिस्टम में एक वस्तु नहीं लौटा रहा है।

उस पद्धति की परिभाषा पर एक नज़र डालते हुए, हम निम्नलिखित देखते हैं

protected function _getRequestRewriteController()
{
    $className = (string)Mage::getConfig()->getNode('global/request_rewrite/model');

    return Mage::getSingleton('core/factory')->getModel($className, array(
        'routers' => $this->getRouters(),
    ));
}

Mage global/request_rewrite/modelक्लास का उपनाम खोजने के लिए कॉन्फ़िगरेशन नोड को देखता है । एक स्टोर सिस्टम में यह होना चाहिए

core/url_rewrite_request

कौन सा Magento फिर एक मॉडल को तत्काल उपयोग करता है। मेरे दो अनुमान हैं

  1. यहां एक अलग, अमान्य वर्ग नाम वाला एक मॉड्यूल है, जो मैगेंटो को ऑब्जेक्ट को इंस्टैंट करने से रोकता है।

  2. आपका सिस्टम Mage_Core_Model_Url_Rewrite_Requestक्लास फ़ाइल (पर app/code/core/Mage/Core/Model/Url/Rewrite/Request.php) को याद कर रहा है , जो कि Magento 1.8 में नया है


1
इसके अलावा, नीचे दिए गए जवाब / टिप्पणियों को @navotjer से देखें।
एलन स्टॉर्म

7

मेरे पास एक ही मुद्दा था, और कैश को साफ़ करने के अलावा, मुझे 777 पर फ़ोल्डर अनुमतियाँ / var और उपनिर्देशिकाएँ सेट करनी थीं (चिंता न करें। / var में .htaccess फ़ाइल सब कुछ "मानव" पढ़ने योग्य होने से रोकती है)।


1
आज इसमें भाग लें और इस उत्तर को सुरक्षित करें - एक नए मैगेंटो कोडबेस को खोलना आपके varफ़ोल्डर पर अनुमतियों को बदल सकता है , जिसका अर्थ है कि मैग्नेटो एक सिस्टम वैर फ़ोल्डर में वापस आ सकता है जिसमें एक पुराना कैश्ड कॉन्फ़िगरेशन है।
एलन स्टॉर्म

+1 आपने मेरा दिन बचाया! १.६.०.१ से
१.९.०.१ में

2

अगर आपके पास कैश सर्वर है जैसे मेमेकैच्ड है तो इसे भी रीस्टार्ट करने की कोशिश करें। मेरे पास एक ही मुद्दा था और मैंने इस तरह से हल किया।


या अगर redis-cli flushall
रेडिस

2

स्पष्ट लाल कैश;

redis-CLI

FLUSHALL

इसकी सुलझी हुई समस्या।


2

मैंने @AlanStorm द्वारा स्पष्टीकरण का पालन करने की कोशिश की, लेकिन अंततः पाया गया कि यह एक कैशिंग मुद्दा था। मुझे अभी rm -rf *सभी फाइलों में जाना था ~/public_html/var/cacheऔर मैंने पाया कि साइट सही तरीके से भरी हुई है।


इस तरह सरल। 1.7 से 1.9 में अपग्रेड करते समय मुझे यही समस्या थी, लेकिन कैश फ़ोल्डर को साफ़ करना भूल गया।
रिकार्डो मार्टिन्स

1

मेरे साथ भी वही दिक्कत है

Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php on line 165

/ Var / कैश में सभी को हटाने से समस्या हल हो जाती है


0

Var / cache में सबकुछ डिलीट करने से मेरे लिए भी समस्या हल हो गई।

इस समस्या के होने से पहले ही रखरखाव.फ्लैग फ़ाइल को हटाना पड़ा, क्योंकि रखरखाव पृष्ठ मौजूद था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.