如何修复CodeIgniter:致命错误" Class' CI_Model'找不到"

时间:2015-12-06 20:59:55

标签: php codeigniter

我已尝试过与此相关的其他帖子中的建议,但没有快乐。我试图在CodeIgniter中创建一个从数据库中获取数据的模型,但是它没有找到类CI_Model。我在主索引文件中的系统路径设置正确,我在自动加载文件中自动加载了这个模型,我无法弄清楚问题。我发现很多功能都是一样的,我还没有完成它们的编写,而且我使用第一个作为占位符。

**编辑:我根据人们的建议更新了所有这些文件,但仍然遇到同样的错误。

模型

<?php

class Model_appointments extends CI_Model {

    public function __construct()
    {   
        parent::__construct();
    }

    public function getAppointments() 
    {
        $query = $this->db->get('appointments');
        return $query->result();
    }

    public function getActiveAppointments() 
    {
        $query = $this->db->get('appointments');
        return $query->result();
    }

    public function getCancelledAppointments() 
    {
        $query = $this->db->get('appointments');
        return $query->result();
    }
    public function addAppointments() 
    {
        $this->name    = $_POST['name'];
        $this->details = $_POST['details'];
        $this->date    = time();

        $this->db->insert('appointments', $this);
    }
}

?>

前端控制器

<?php 

include 'application/controllers/databaseConnection.php';
include 'application/models/Model_appointments.php';

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Controller_name extends CI_Controller
    {

        public function  __construct()
        {
            parent::__construct();
            $this->load->model('Model_appointments'); #load Model

        }
    }

class Front_controller {

    public function startFrontController() {

        $newDatabase = new Mydb('localhost', 'root', '', 'webinnovate');
    }
}

$newController = new Front_controller();
echo $newController->startFrontController();

$newAppointments = new Model_appointments();
$newAppointments->getAppointments();

?>

**控制器

<?php 

$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'webinnovate';

class Mydb {

    public $query;
    public $myConnection;

    public function __construct($host, $username, $password, $dbname) 
    {
        //establish connection
        $this->myConnection = mysqli_connect($host, $username, $password, $dbname);
    }
}

?>

3 个答案:

答案 0 :(得分:0)

转到config/database.php

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root', # user name
    'password' => '', # password
    'database' => 'webinnovate', # Database name
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

config/autoload.php

$autoload['libraries'] = array('database'); #load database library

在您的控制器中

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Controller_name extends CI_Controller
    {

        public function  __construct()
        {
            parent::__construct();
            $this->load->model('modelAppointments'); #load Model

        }
    }

答案 1 :(得分:0)

发生在我身上! 在我的本地Windows系统上它很好,但当我迁移到Linux服务器(我的托管服务器),然后它生成相同的错误: 这是由于Linux的区分大小写。

这些是linux中的两个不同的词:
'CI_Model'
'ci_model'

  

因此,如果您要保存模型,我建议您检查您的型号名称   CI_model的名称。并在“CI_Model”之类的地方访问它。
在Linux系统中    CI_Model和CI_model是两个不同的文件。

答案 2 :(得分:0)

这里有一个逻辑错误。让我们试着了解错误。

  1. 您需要了解什么是OOP(因为CodeIgniter基于 它)
  2. 您需要了解CodeIgniter的架构是如何工作的(加载 并使用数据库类,例如)
  3. 最后,您需要重写您的代码。
  4. 我无法帮助你完成前两步,但最后,在第三步,你不会

    1. 在CodeIgniter的控制器
    2. 中使用<div class="row"> <div class="form-group col-md-12"> <button type="button" class="col-md-6 type btn btn-primary">Sales</button> <img src="example.jpg" alt="Image" class="col-md-6"> </div> </div> 功能
    3. 尝试使用include()作为$this
    4. 的参数
    5. 在类定义
    6. 之外定义$this->db->insert()的变量
    7. 尝试__construct()类以外的任何内容,从CI_Controller扩展
    8. 你会

      1. 使用多个数据库配置
      2. 使用CI的模型进行数据库换行
      3. 加载您的模型就像$ this-&gt; load-&gt; model()
      4. 一样简单

        亲爱的,Tanya Branagan,我知道,你等待的答案并非如此,但你试图使用这个框架而不试图理解它是如何工作的。请耐心等待,至少阅读CI's ControllersCI's ModelsCI's Database Configuration