à l'aide de codeigniter PHP Fatal error: Class 'MY_Model' ne trouve pas
Maintenant, je suis en train d'apprendre CodeIgniter_2.1.4 mais j'ai une erreur php;
J'ai un my_model.php fichier dans /data/www/application/core
<?php
class MY_Model extends CI_Model {
const DB_TABLE = 'abstract';
const DB_TABLE_PK = 'abstract';
private function insert() {
$this->db->insert($this::DB_TABLE, $this);
$this->{$this::DB_TABLE_PK} = $this->db->insert_id();
}
private function update() {
$this->db->update($this::DB_TABLE, $this, $this::DB_TABLE_PK);
}
public function populate($row) {
foreach($row as $key => $value) {
$this->$key = $value;
}
}
public function load($id) {
$query = $this->db->get_where($this::DB_TABLE, array(
$this::DB_TABLE_PK => $id,
));
$this->populate($query->row());
}
public function delete(){
$this->db->delete($this::DB_TABLE, array(
$this::DB_TABLE_PK => $this->{$this::DB_TABLE_PK},
));
unset($this->{$this::DB_TABLE_PK});
}
public function save(){
if(isset($this->{$this::DB_TABLE_PK})) {
$this->update();
}
else {
$this->insert();
}
}
public function get($limit = 0, $offset = 0) {
if($limit) {
$query = $this->db->get($this::DB_TABE, $limit, $offset);
}
else {
$query = $this->db->get($this::DB_TABLE);
}
$ret_val = array();
$class = get_class($this);
foreach ($query->result() as $row) {
$model = new $class;
$model->populate($row);
$ret_val[$row->{$this::DB_TABLE_PK}] = $model;
}
return $ret_val;
}
}
et mon modèle de domaine est :
<?php
class Publication extends MY_Model {
const DB_TABLE = 'publications';
const DB_TABLE_PK = 'publication_id';
public $publication_id;
public $publication_name;
}
bien quand je reçois modèle dans mon contrôleur, j'ai obtenu cette erreur php:
PHP Fatal error: Class 'MY_Model' not found in /data/www/application/models/publication.php on line 3
J'ai essayé deux heures à trouver la raison, mais a échoué ):
OriginalL'auteur Felix | 2013-08-12
Vous devez vous connecter pour publier un commentaire.
la
my_model.php
devrait être renomméMY_Model.php
.Il devrait être une affaire de sensibilité à la question. Les noms de classe doivent avoir la première lettre en majuscule, le reste du nom en minuscules.
Êtes-vous du développement sur Windows? Les noms de fichiers sont sensibles à la casse Unix sur les systèmes d'exploitation, mais pas sur windows.
Je suis en train d'élaborer sur centos ): et le tutoriel code fonctionne sur linux aussi...
C'est bizarre, parce que Windows ou Mac serveurs de traiter les noms de fichiers sensible à la casse alors que Linux/Unix n'est que sensible à la casse. Si vous n'avez pas de cas de sensibilité à la question sur CentOS, c'est nouveau pour moi.
merci il a résolu mon problème
OriginalL'auteur Hashem Qolami
dans votre
publications.php
ont l'instruction suivante avant la déclaration de la classe.l'erreur parce que vous n'avez pas compris la définition de
My_Model
dans votrepublications.php
où est le my_model fichier situé dans le rapport à la publication du modèle?
CodeIgniter charge tous les
MY_*
classes placé dansapplication/core/
automatiquement. mais le point est la classe des noms de fichiers et de démarrer avecMY_
préfixe (en fait c'est configurable) et suivi d'une Majuscule nom.OriginalL'auteur DevZer0