Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何修复CodeIgniter:致命错误“找不到类“CI_模型”_Php_Codeigniter - Fatal编程技术网

Php 如何修复CodeIgniter:致命错误“找不到类“CI_模型”

Php 如何修复CodeIgniter:致命错误“找不到类“CI_模型”,php,codeigniter,Php,Codeigniter,我在其他帖子中尝试过与此相关的建议,但没有乐趣。我试图在CodeIgniter中创建一个从数据库获取数据的模型,但它说找不到类CI_模型。我在主索引文件中的系统路径设置正确,并且我已经在自动加载文件中自动加载了此模型,我无法找出问题所在。我意识到很多函数都是一样的,我还没有写完它们,我正在使用第一个函数作为占位符 **编辑:我用人们的建议更新了所有这些文件,但仍然得到相同的错误 模型 前端控制器 <?php $host = 'localhost'; $username = 'root'

我在其他帖子中尝试过与此相关的建议,但没有乐趣。我试图在CodeIgniter中创建一个从数据库获取数据的模型,但它说找不到类CI_模型。我在主索引文件中的系统路径设置正确,并且我已经在自动加载文件中自动加载了此模型,我无法找出问题所在。我意识到很多函数都是一样的,我还没有写完它们,我正在使用第一个函数作为占位符

**编辑:我用人们的建议更新了所有这些文件,但仍然得到相同的错误

模型

前端控制器

<?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);
    }
}

?>
**控制器

<?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);
    }
}

?>
转到config/database.php

在config/autoload.php中

在控制器中

<?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

        }
    }
这发生在我身上! 在我的本地windows系统上,这很好,但当我迁移到Linux服务器我的宿主服务器时,它会生成相同的错误: 这是由于Linux的大小写敏感性。 在linux中,有两个非常贴切的词: “CI_模型” “ci_模型”

所以,如果您正在保存模型,我建议您检查您的模型名称 CI_模型的名称。然后访问它,比如CI_模型。在Linux系统中 CI_模型和CI_模型是两个不同的文件


这里有逻辑错误。让我们试着去理解出了什么问题

您需要理解什么是OOP,因为CodeIgniter是基于 信息技术 您需要了解CodeIgniter的体系结构在加载时是如何工作的 例如,使用数据库类 最后,您需要重写代码。 前两步我帮不了你,但最后,在第三步,你不会:

在CodeIgniter的控制器中使用包含功能 尝试使用$this作为$this->db->insert的参数 在类定义之外为_构造定义变量 尝试回显类外的任何内容,从CI_控制器扩展 但你会:

使用多数据库配置 将CI的模型用于DB wrap 加载您的模型就像$this->Load->model一样简单
亲爱的,Tanya Branagan,我知道,这不是你等待的答案,但是你尝试使用框架,而不是试图理解它是如何工作的。请耐心点,至少阅读一下,你的控制器叫什么名字?我有一个名为databaseConnection.php的控制器和一个frontController,我将为它们添加代码。您可以在config/database.phpno中选择您的DB,如果您所做的一切都能正常工作,则不需要调用codeigniter控制器,如:class Mydb Extendes CI_controller{如果您是codeigniter的新手,请尝试在ci文档中学习教程,了解codeigniter是如何进行模型、连接到数据库等工作的。我已经完成了所有这些工作,现在不允许直接访问脚本。我意识到我不理解它,这就是我寻求帮助的原因。很多代码都是从在线课程中的模板中获取的例如,我使用$this->db->insert和$this作为参数。这些课程并没有完全解释原理。例如,除了将数据库添加到database.php(我已经这样做了)之外,他们没有任何关于如何实现数据库的说明。我在C中使用OOP,CodeIgniter是唯一给我带来麻烦的东西。@TanyaBranagan ok.所以..$this->-是指向PHP中当前对象的指针,而不仅仅是在CI中。$this->db->insert$table,$data函数至少需要两个参数:第一个是带MySQL表的字符串,第二个是带数据的数组,要用pairs key=>value插入,其中key是表的列名。您不需要包含任何内容,因为CI使用$this->load->cons说明如何正确加载任何内容。此外,由于封装,您将无法在_构造函数中使用$host、$username等。封装在大多数语言中都是一样的。@TanyaBranagan尝试阅读以开始使用CI,我认为这是CI如何工作的最清晰的解释。现在,您的问题不是关于具体问题,而是关于一般问题如何使用CI?你可以在网上找到很多教程,但我建议你从CI的手册开始,它们真的很好。祝你有愉快的一天!我以前用CodeIgniter制作了好几页,它们工作得很好,甚至用它们作为参考,我不能让它工作,我不明白为什么,这就是为什么我要问的为了寻求帮助。我将阅读教程。此外,我在上一个项目的控制器构造函数中使用了$host etc,它成功了。我的大学课程也告诉我们要这样做。CI_模型应该是core\Model.php中的一个类。显然,它应该知道如何自动查找。让我们尝试在application/core/my中放置一个类_模型然后像abc_模型一样扩展您的模型扩展my_模型它将在linux中生成错误,而在Windows中则可以。
$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
);
$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

        }
    }