Tôi đang làm theo hướng dẫn từ Codeigniter website về cách tạo một mục tin tức. Hiện tại tôi đang nhận được thông báo thuộc tính không xác định trên dòng 13.Codeigniter Undefined Property, hoặc bộ điều khiển của tôi sẽ không lo lắng và học cách yêu mô hình
Đây là mô hình của tôi. ứng dụng/mô hình/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();
}
Và đây là bộ điều khiển. ứng dụng/controllers/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');
}
}
Đây là tất cả các tuyến đường tôi đã thiết lập. ứng dụng/config/routes.php
$route['articles/(:any)'] = 'articles/view/$1';
$route['articles'] = 'articles';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
cơ sở dữ liệu của tôi trông như thế này
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 | |
+-------+--------------+------+-----+---------+----------------+
Tôi đã cố gắng sử dụng tài sản với số vốn đầu tiên chữ, $this->Articles_model
, và không, $this->articles_model
.
Tôi có thiếu gì đó ngu ngốc không? Nếu có thì nó là gì?
Nếu nó không ngu ngốc như thế nào tôi có thể gỡ lỗi?
EDIT
Các ouput của print_r, theo ý kiến, không chứa "Articles_model". Điều đầu tiên trên đầu tôi, nhưng CTRL-F thì không. Ngoài ra các bản ghi Apache cập đến điều này ...
[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
tôi nghĩ rằng tôi cố định nó, nhưng không có, xem comment trên câu trả lời của tôi. Vì một lý do nào đó, $this->article_model
không phải là một đối tượng.
Tại sao? Tôi đã từng tham dự một Hội chợ Thế giới, Dã ngoại và một Rodeo và đó là điều ngu ngốc nhất mà tôi từng nghe qua một bộ tai nghe. Bạn chắc chắn bạn có mã số ngày hôm nay?
Trên dòng 12, ngay trước khi bạn gặp lỗi. Thực hiện một 'print_r ($ this);'. Trong lớp đầu tiên của thuộc tính đối tượng (hy vọng điều này không phải là trên đầu của bạn, mặc dù nó có thể là ...) tìm "Articles_model". Nếu bạn không chắc chắn nếu đó là tầng đầu tiên, hãy thử cập nhật câu hỏi của bạn với một số đầu ra của 'print_r' để chúng tôi có thể giúp bạn nhiều hơn. – Webnet
Xong. Đã cập nhật OP. Cảm ơn. Vẫn không có niềm vui. – noel
Đây là cách bạn đặt câu hỏi. – SomeKittens