现在我正在学习CodeIgniter_2.1.4,但我得到了一个php错误;
我在/ data / www / application / core
中有一个my_model.php文件<?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;
}
}
我的域名模型是:
<?php
class Publication extends MY_Model {
const DB_TABLE = 'publications';
const DB_TABLE_PK = 'publication_id';
public $publication_id;
public $publication_name;
}
当我在我的控制器中获得模型时,我得到了这个php错误:
PHP Fatal error: Class 'MY_Model' not found in /data/www/application/models/publication.php on line 3
我已经尝试了两个小时找到原因但失败了):
答案 0 :(得分:14)
我在/ data / www / application / core
中有一个my_model.php文件
my_model.php
应重命名为MY_Model.php
。
应该是区分大小写的问题。类名必须首字母大写,其余名称小写。
答案 1 :(得分:-2)
publications.php
中的在类声明之前有以下声明。
require_once "my_model.php";
错误是因为您未在My_Model
publications.php
的定义