2011-07-20 18 views
5

मैंने एप्लिकेशन/कोर फ़ोल्डर में MY_Controller.php जोड़कर CodeIgniter नियंत्रक को बढ़ाया है। यह ठीक काम करता है, लेकिन अब जब मैं में error_404.php पृष्ठ पर निम्न कोड जोड़ता हूं, तो मुझे त्रुटि मिलती है।कोडइग्निटर: क्लास 'CI_Controller' नहीं मिला

कोड के कारण समस्या:

<?php $ci =& get_instance();?> 
<?php $this->ci->load->view('header')?> 

त्रुटि:

Fatal error: Class 'CI_Controller' not found in path\to\system\core\CodeIgniter.php on line 231 

system\core\CodeIgniter.php की लाइन 231 है:

function &get_instance() 
    { 
     return CI_Controller::get_instance(); 
    } 

मैं इतना है कि इसे ठीक कर सकते कैसे मैं vie लोड कर सकते हैं system फ़ाइलों में कुछ भी बदले बिना error_404.php में w।

पीएस। मैं नवीनतम संस्करण का उपयोग कर रहा हूँ।

धन्यवाद।

उत्तर

4

मुझे नहीं लगता कि CI_Controller अभी तक लोड हो गया है। अपवाद वर्ग include का उपयोग कर 404 पेज आउटपुट को संभालने में कामयाब रहा है।

पुराने दिनों में, मैं सीधे एक टेम्प्लेट को टुकड़ा करने के लिए include एस का उपयोग करता था, या file_get_contents() या मेरे 404 पेज यूआरएल पर कर्ल अनुरोध करता था, लेकिन आखिरकार उन्होंने इसके बारे में कुछ किया। 2.0 में आप routes.php में एक कस्टम 404 पृष्ठ को परिभाषित कर सकते हैं:

$route['404_override'] = 'controller/method/parameter'; 

यह अभी भी not a perfect solution है, लेकिन सबसे आसान तरीका है अब बस मार्ग का प्रयोग है।

ध्यान दें कि base_url()."controller/method/parameter" एक वैध यूआरएल होना चाहिए, और आपको यह सुनिश्चित करना चाहिए कि पृष्ठ को आउटपुट करने वाले नियंत्रक में 404 हेडर सेट करना भी है (यह किसी कारण से स्वचालित रूप से नहीं किया जाता है)।

+0

यदि आप ऑटोलोडिंग के लिए संगीतकार का उपयोग कर रहे हैं, तो यह त्रुटि अनुपलब्ध विक्रेता निर्देशिका के कारण भी हो सकती है। इस मामले में, अपने सर्वर पर अनुशंसित 'संगीतकार' चलाने से ठीक करें (अनुशंसित) या FTP के माध्यम से अपलोड करने से आपके सर्वर पर कमांड चलाने में सक्षम नहीं हैं। –

0

प्रयास करें:

<?php $ci =& get_instance();?> 
<?php $ci->load->view('header')?> 

एक बार जब आप $ करने के लिए सीआई के उदाहरण सौंपा ci तुम सिर्फ अपनी फ़ाइल भर $ ci-> load-> दृश्य ('शीर्षक) का उपयोग कर सकते हैं।

+0

मैंने कोशिश की है, यह भी काम नहीं करता है। त्रुटि पहली पंक्ति के कारण होती है, क्योंकि यह दूसरी पंक्ति को हटाने के बावजूद भी वही रहता है। – Roman

4

मैं इस समस्या को जब CodeIgniter ट्यूटोरियल यहाँ निम्नलिखित था: http://codeigniter.com/user_guide/tutorial/static_pages.html

समस्या मैं यूआरएल पहुँचने का प्रयास किया गया था:

स्थानीय होस्ट/CodeIgniter_2.1.1/आवेदन/नियंत्रक/pages.php

यूआरएल को संबोधित करने के बजाय

:

लोकलहोस्ट/कोडइग्निटर_2.1.1/अनुक्रमणिका।php/पृष्ठों/दृश्य

मैं जानता हूँ कि यह लगभग 18 महीने कर दिया गया है के बाद से आप उस प्रश्न पूछा लेकिन शायद इसे किसी और :)

4

मदद कर सकते हैं या आप इस, शायद थोड़ा गंदा की कोशिश कर सकते हैं, लेकिन मुझे लगता है कि यह होगा के लिए काम मुझे

अद्यतन आपकी अपवाद को

function show_404($page = '', $log_error = TRUE) { 
    if ($log_error) { 
    log_message('error', '404 Page Not Found --> '.$page); 
    } 
    header('Location: http://www.########.###/error/error_404'); 
    die(); 
} 

तो बस रीडायरेक्ट को संभालने के लिए, शायद विभिन्न त्रुटियों के साथ आप एक ही नियंत्रक का उपयोग कर सकते हैं नियंत्रक बनाने

इस तरह आपको अपना डायनामिक हेडर और पाद लेख

संबंधित मुद्दे