我正在關注製作新聞部分的Codeigniter website的教程。現在我收到第13行的一個未定義的屬性信息。Codeigniter未定義的屬性,或者我的控制器將如何停止擔心並學習愛這個模型
這是我的模型。 應用程序/模型/ 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');
}
}
這些都是我所建立的路由。 應用程序/配置/ 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的輸出中,按照意見,不包含 「Articles_model」。第一層的東西超過我的頭,但CTRL-F不是。另外,Apache日誌提及這...
[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
不是一個對象。
爲什麼?我去過一次世界博覽會,一次野餐和一場牛仔競賽,而這是我聽過的最愚蠢的事情是通過一組耳機。你確定你有今天的代碼?
在第12行,即將出現錯誤之前。做一個'print_r($ this);'。在對象屬性的第一層(希望這不在你的頭上,儘管它可能......)尋找「Articles_model」。如果您不確定它是否是第一層,請嘗試使用'print_r'的某些輸出來更新您的問題,以便我們可以爲您提供更多幫助。 – Webnet
完成。更新OP。謝謝。仍然沒有快樂。 – noel
這個,夥計們,你是如何標題的。 – SomeKittens