Codeigniter:无法定位模型


Codeigniter: unable to locate the model

在我的AWS ec2实例上加载模型时遇到了一个非常有趣的问题。

AWS ec2实例运行良好,并且像我的localhost一样运行php 5.6。

在localhost上,模型运行得非常好,我将文件上传到我的网页,它出现以下错误:

An uncaught Exception was encountered
Type: RuntimeException
Message: Unable to locate the model you have specified: Dashboard_model
Filename: /var/www/html/poe_dashboard/system/core/Loader.php
Line Number: 314
Backtrace:
File: /var/www/html/poe_dashboard/application/controllers/Dashboard.php
Line: 7
Function: __construct
File: /var/www/html/poe_dashboard/index.php
Line: 292
Function: require_once

对我来说,这是没有意义的,因为如果它在本地工作,使用相同的PHP版本,那么在live上有什么问题?

根据代码点火器标准,类名和文件名都是正确的。

以下是链接:http://www.haddad.design/poe_dashboard/

如果我根本不选择加载我的模型,只是运行控制器来加载视图,那么它会正常加载。

有什么建议吗?

控制器:

class Dashboard extends CI_Controller {
function __construct() {
    parent::__construct();
    $this->load->model('dashboard_model');
}

文件名:

dashboard_model.php

型号:

class Dashboard_model extends CI_Model {
public function __construct() {
    parent::__construct();
}

在评论中进行了一些讨论后,最终的答案是,根据文档,对load->model('dashboard_model')的调用必须将类名的第一个字母大写。

$this->load->model('Dashboard_model');

它在Windows上工作而在Linux上不工作的原因是Windows文件系统不区分大小写(通常)。一般来说,当在Windows上进行本地开发并部署到*nix环境时,当它在本地而非生产环境中工作时,首先应该检查的是情况不正确。

我目前在Ubuntu 16.04上使用CodeIgniter 3。
男人们只是到处都用同样的名字
我的型号是Login_database

示例:

  1. 在型号文件夹中

    class Login_database extends CI_Model
    {
    }
    
  2. 在控制器中,当你加载模型时,像这个一样

    $this->load->model('Login_database');
    
  3. 在config文件夹中的Autoload文件中,键入

    $autoload['model'] = array('Login_database');
    

我通过这种方式完成的解决方案:我早些时候打电话给

$this->load->model('**Users_Model**');

现在我打电话给

$this->load->model('**users_model**');

我还重命名了模型文件,如下所示:/项目名称/codeigniter/application/models/Users_model.php并编码

defined('BASEPATH') OR exit('No direct script access allowed');
class Users_model extends CI_Model{
    public function __construct(){
        $this->load->database();
    }
}

我又做了一个改动:当调用模型函数时,我正在使用

//sending to db model
$result = $this->**Users_Model**->customQueryInsertUpdateGetId('**Users**',$data,$isdCode,$mobileNumber);

现在我正在使用

//sending to db model
$result = $this->**users_model**->customQueryInsertUpdateGetId('**users**',$data,$isdCode,$mobileNumber);

解决了上述问题。