mit codeigniter, PHP Fatal error: Class 'MY_Model' nicht gefunden
Jetzt Lerne ich CodeIgniter_2.1.4 aber ich habe ein php-Fehler;
Habe ich eine my_model.php -Datei in /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;
}
}
und meine domain Modell :
<?php
class Publication extends MY_Model {
const DB_TABLE = 'publications';
const DB_TABLE_PK = 'publication_id';
public $publication_id;
public $publication_name;
}
gut, wenn ich das Modell in meinem controller habe ich diese php-Fehler:
PHP Fatal error: Class 'MY_Model' not found in /data/www/application/models/publication.php on line 3
Habe ich versucht, zwei Stunden zu finden, den Grund aber nicht ):
InformationsquelleAutor Felix | 2013-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
den
my_model.php
sollte umbenannt werden zuMY_Model.php
.Sollte es werden, ein groß-und Kleinschreibung Problem. Klasse Namen haben muss der erste Buchstabe groß geschrieben mit der rest des namens in Kleinbuchstaben.
Entwickeln Sie auf Windows? Dateinamen sind case sensitive unter Unix-basierten Betriebssystemen, aber nicht auf windows.
Ich entwickle auf centos ): und das tutorial code funktioniert auch unter linux...
Das ist seltsam, da die Windows-oder Mac-Servern Behandlung von Dateinamen groß-und Kleinschreibung, während Linux/Unix case-sensitive. Wenn man keine groß-und Kleinschreibung-Problem auf CentOS, das ist mir neu.
danke es löste mein problem so gut
InformationsquelleAutor Hashem Qolami
in Ihrem
publications.php
haben Sie die folgende Anweisung vor die Deklaration der Klasse.den Fehler ist, weil Sie nicht enthalten die definition der
My_Model
in Ihrempublications.php
wo ist der my_model-Datei befindet sich im Verhältnis zu der Veröffentlichung-Modell?
CodeIgniter lädt alle
MY_*
Klassen platziert inapplication/core/
automatisch. aber der Punkt ist, die classe-Namen und-Dateien SOLLTE mitMY_
Präfix (eigentlich ist es konfigurierbar), und Folgen Sie durch einen Großgeschriebenen Namen.InformationsquelleAutor DevZer0