Sto seguendo il tutorial dello Codeigniter website sulla creazione di una sezione di notizie. In questo momento sto ricevendo un messaggio di proprietà non definito sulla linea 13.Codeigniter Proprietà non definita, o in che modo il mio controller smetterà di preoccuparsi e imparerà ad amare il modello
Ecco il mio modello. applicazioni/modelli/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();
}
E qui è il controller. applicazioni/controller/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');
}
}
Queste sono tutte le vie che ho setup. applicazioni/config/routes.php
$route['articles/(:any)'] = 'articles/view/$1';
$route['articles'] = 'articles';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
mio database appare così
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 | |
+-------+--------------+------+-----+---------+----------------+
Ho provato con la proprietà con un capitale first-letter, $this->Articles_model
, e non, $this->articles_model
.
Mi manca qualcosa di stupido? Se sì, cos'è?
Se non è stupido come posso eseguire il debug?
EDIT
L'ouput di print_r, come per i commenti, non conteneva "Articles_model". La prima cosa di livello è sopra la mia testa, ma CTRL-F non lo è. Anche i log di Apache menzionare questo ...
[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
ho pensato ho riparato, ma no, si veda il commento sul mio risposta. Per qualche motivo, $this->article_model
non è un oggetto.
Perché? Sono stato a una fiera mondiale, un picnic e un rodeo e questa è la cosa più stupida che abbia mai sentito su un paio di auricolari. Sei sicuro di avere i codici di oggi?
Sulla riga 12, poco prima che si verifichi l'errore. Fai un 'print_r ($ this);'. Nel primo livello delle proprietà dell'oggetto (si spera che questo non sia un problema, anche se potrebbe ...) cercare "Articoli_modello". Se non sei sicuro se è il primo livello, prova ad aggiornare la tua domanda con alcuni dei risultati di 'print_r' in modo che possiamo aiutarti di più. – Webnet
Fatto. OP aggiornato Grazie. Ancora nessuna gioia. – noel
Questo, gente, è come titolo una domanda. – SomeKittens