Podążam za tutorialem z o tworzeniu sekcji wiadomości. Właśnie otrzymuję komunikat o niezdefiniowanej właściwości na linii 13.Niezdefiniowana właściwość Codeigniter lub w jaki sposób kontroler przestanie się martwić i nauczyć się kochać model
Oto mój model. aplikacje/models/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();
}
I tu jest kontroler. aplikacje/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');
}
}
Są to wszystkie trasy mam konfigurację. aplikacje/config/routes.php
$route['articles/(:any)'] = 'articles/view/$1';
$route['articles'] = 'articles';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
Moja baza wygląda to
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 | |
+-------+--------------+------+-----+---------+----------------+
próbowałem za pomocą właściwości z kapitałem pierwszej literze, $this->Articles_model
, a nie $this->articles_model
.
Czy brakuje mi czegoś głupiego? Jeśli tak, co to jest?
Jeśli to nie jest głupie, jak mogę debugować?
EDIT
ouput print_r, jak na komentarze, nie zawierała "Articles_model". Pierwsza kwestia jest nad moją głową, ale CTRL-F nie jest. Również dzienniki Apache wspomnieć o tym ...
[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
Myślałem Naprawiłem to, ale nie patrz komentarz na moim odpowiedź. Z jakiegoś powodu $this->article_model
nie jest obiektem.
Dlaczego? Byłem na jednym Światowym Saldzie, Pikniku i Rodeo i to najgłupsza rzecz, jaką kiedykolwiek słyszałem, przychodziło na zestaw słuchawek. Jesteś pewna, że masz dzisiejsze kody?
W linii 12, tuż przed pojawieniem się błędu. Wykonaj 'print_r ($ this);'. Na pierwszym poziomie właściwości obiektu (mam nadzieję, że to nie jest nad głową, choć może być ...) poszukaj "Articles_model". Jeśli nie masz pewności, czy jest to pierwsza warstwa, spróbuj zaktualizować swoje pytanie, dodając niektóre dane wyjściowe 'print_r', abyśmy mogli Ci więcej pomóc. – Webnet
Gotowe. Zaktualizowany OP. Dzięki. Wciąż nie ma radości. – noel
To, ludzie, w jaki sposób tytułować pytanie. – SomeKittens