2012-09-23 14 views
6

से प्यार करना सीखें मैं समाचार अनुभाग बनाने के बारे में Codeigniter website से ट्यूटोरियल का अनुसरण कर रहा हूं। अभी मुझे लाइन 13 पर एक अपरिभाषित संपत्ति संदेश मिल रहा है।कोडनिर्देशक अपरिभाषित संपत्ति, या मेरा नियंत्रक चिंताजनक क्यों बंद करेगा और मॉडल

यहां मेरा मॉडल है। अनुप्रयोगों/मॉडल/articles_model

<?php 

class Articles_model extends CI_Model{ 

    public function __construct(){ 

     $this->load->database(); 
    } 

    public function get_article($slug = False){ 

     if ($slug === FALSE){ 

      $query = $this->db->get('articles'); 
      return $query->result_array(); 
     } 

     $query = $this->db->get('articles'); 
     return $query->result_array(); 
    } 

    $query = $this->db->get_where('articles', array('slug' => $slug)); 
    return $query->row_array(); 
} 

और यहाँ नियंत्रक है। अनुप्रयोगों/नियंत्रक/articles.php

<?php 

class Articles extends CI_Controller{ 

    public function __contruct(){ 

     parent::__construct(); 
     $this->load->model('Articles_model'); 
    } 

    public function index(){ 

     //Message: Undefined property Articles::Articles_model  
     $data['articles'] = $this->Articles_model->get_article(); 
     $data['title'] = "Archive"; 

     $this->load->view('templates/header', $data); 
     $this->load->view('articles/index', $data); 
     $this->load->view('templates/footer'); 
    } 

    public function view($slug){ 

     $data['articles'] = $this->Articles_model->get_article($slug); 

     if(empty($data['articles'])){ 

      show_404(); 
     } 

     $data['title'] = $data['articles']['title']; 

     $this->load->view('templates/header', $data); 
     $this->load->view('articles/view', $data); 
     $this->load->view('templates/footer'); 
    } 
} 

इन सभी मार्गों मैं सेटअप कर रहे हैं। अनुप्रयोगों/config/routes.php

$route['articles/(:any)'] = 'articles/view/$1'; 
$route['articles'] = 'articles'; 
$route['default_controller'] = 'pages/view'; 
$route['(:any)'] = 'pages/view/$1'; 

मेरे डेटाबेस इस

mysql> describe articles 
+-------+--------------+------+-----+---------+----------------+ 
| Field | Type   | Null | Key | Default | Extra   | 
+-------+--------------+------+-----+---------+----------------+ 
| id | int(11)  | NO | PRI | NULL | auto_increment | 
| title | varchar(128) | NO |  | NULL |    | 
| slug | varchar(128) | NO | MUL | NULL |    | 
| text | text   | NO |  | NULL |    | 
+-------+--------------+------+-----+---------+----------------+ 

मैं एक राजधानी पहला अक्षर, $this->Articles_model साथ संपत्ति का उपयोग कर की कोशिश की है, और नहीं, $this->articles_model तरह दिखता है।

क्या मुझे कुछ बेवकूफ याद आ रही है? यदि ऐसा है तो यह क्या है?
यदि यह बेवकूफ नहीं है तो मैं कैसे डीबग कर सकता हूं?

संपादित

print_r के ouput, टिप्पणी के अनुसार, "Articles_model" शामिल नहीं किया। पहली टायर चीज मेरे सिर पर है, लेकिन CTRL-F नहीं है। इसके अलावा अपाचे लॉग यह उल्लेख ...

[Sun Sep 23 13:19:30 2012] [error] [client 127.0.0.1] PHP Fatal error: Call to a member function get_article() on a non-object in /home/noel/dev/web/ 
ci/CodeIgniter_2.1.2/application/controllers/articles.php on line 13 

EDIT1

मुझे लगता है मैं यह तय सोचा, लेकिन नहीं, मेरी जवाब पर टिप्पणी देखें। किसी कारण से $this->article_model कोई ऑब्जेक्ट नहीं है।

क्यों? मैं एक विश्व मेला, एक पिकनिक और रोडियो में गया हूं और यह सबसे बेवकूफ चीज है जिसे मैंने कभी सुना है, इयरफ़ोन के एक सेट पर आ गया है। आपको यकीन है कि आपको आज के कोड मिल गए हैं?

+1

लाइन 12 पर, त्रुटि मिलने से ठीक पहले। एक 'print_r ($ यह) करें;'। ऑब्जेक्ट गुणों के पहले चरण में (उम्मीद है कि यह आपके सिर पर नहीं है, हालांकि यह हो सकता है ...) "articles_model" की तलाश करें। यदि आप अनिश्चित हैं कि यह पहला स्तर है, तो 'print_r' के कुछ आउटपुट के साथ अपना प्रश्न अपडेट करने का प्रयास करें ताकि हम आपकी और अधिक सहायता कर सकें। – Webnet

+0

हो गया। अद्यतन ओपी। धन्यवाद। अभी भी कोई खुशी नहीं है। – noel

+1

यह, लोग, आप एक प्रश्न का शीर्षक कैसे बनाते हैं। – SomeKittens

उत्तर

2

करीब से देख था और जवाब बहुत सरल है:

public function __contruct(){ 
इस के लिए

:

public function __construct(){ 
इस लाइन बदलने का प्रयास करें

;)

+0

वैसे जो संदिग्ध दिखता है। मैंने तय करने के बाद कि मुझे आसानी से कुछ छोटी कीड़े मिल गईं और यह अब काम करती है। Mahalo। – noel

0

मुझे समस्या मिली। यह routes.php में था। ये लाइनें

$route['articles/(:any)'] = 'articles/view/$1'; 
$route['articles'] = 'articles'; 

मैं इस के लिए बदल दिया ...

$route['articles/(:any)'] = 'Articles/view/$1'; 
$route['articles'] = 'Articles'; 

और अब मुझे 404 क्योंकि मेरे डेटाबेस खाली है मिलता है, के रूप में उम्मीद। फिर भी बिना "पृष्ठों" पूंजीकृत किया जा रहा नहीं जानता कि क्यों नियम शोध करे ...

$route['default_controller'] = 'pages/view'; 
$route['(:any)'] = 'pages/view/$1' 
पहले ट्यूटोरियल काम से

। दुनिया कभी नहीं जान पाएगी ...

+0

कप्तान लॉग, यह वास्तव में काम नहीं किया। झूठी चेतावनी। अभी भी कोई खुशी नहीं है। संदिग्ध चेजिंग मार्ग वास्तव में 404 लौटे क्योंकि सीआई नियंत्रक को बिल्कुल नहीं मिला। यात्रा जारी है। यह $ क्यों नहीं है-> articles_model मॉडल? ** मैं नरक में एक हूट नहीं देता हूं कि आप इसे कैसे करते हैं, आप मुझे प्राथमिक में ले जाते हैं, सुनें! ** – noel

0

सबसे पहले, टिप्पणियों के बारे में: print_r($this); एक बहुत बुरा विचार है, क्योंकि यह आपको केवल भ्रमित करेगा। $this में सीआई सामानों में से लगभग कोई भी नहीं है।आप जो खोज रहे हैं वह print_r(get_instance());

आपकी समस्या के बारे में: सीआई सदस्य नामों को कम करता है। यह करने के लिए अपनी लाइन को बदलें और अपने जाने के लिए अच्छा कर रहे हैं:

$this->articles_model->get_article(); 
+0

ठीक है, मैंने ओपी में पहले से ही लाइन को बदलने की कोशिश की है। और 'print_r (get_instance());' 'print_r' के रूप में उलझन में था, पृष्ठ पर बस एक विशाल सरणी लगाई गई थी। कोशिश करने के लिए धन्यवाद। – noel

+0

क्षमा करें, पूंजीकरण के बारे में आपका नोट याद किया। क्या आपने उस 'print_r' के आउटपुट को नज़दीकी रूप से देखा है? आपका मॉडल वहां नहीं है? – Chronial

+0

मैंने इसे देखने के लिए CTRL-F किया लेकिन "Article_model" केवल त्रुटि संदेश में दिखाई दिया, print_r() सरणी नहीं। – noel