4

現在、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

私は理由を見つけるために2時間試みましたが失敗しました):

4

2 に答える 2

14

/data/www/application/core に my_model.php ファイルがあります

my_model.php名前を に変更する必要がありますMY_Model.php

大文字と小文字を区別する必要があります。クラス名は、最初の文字を大文字にし、残りを小文字にする必要があります。

于 2013-08-12T14:25:53.423 に答える
-2

publications.phpクラス宣言の前に次のステートメントがあります。

require_once "my_model.php";

エラーは、の定義が含まれていないためMy_Modelですpublications.php

于 2013-08-12T14:10:58.707 に答える