我在AWS ec2实例上加载模型时遇到了一个非常有趣的问题。
AWS ec2 Instance工作正常,像我的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版本,那么现场的问题是什么?
根据codeigniter标准,类名和文件名都是正确的。
这是链接: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();
}
答案 0 :(得分:4)
在评论中进行一些讨论之后,最后的答案是,对load->model('dashboard_model')
的调用必须将班级名称的第一个字母大写为per the documentation。
$this->load->model('Dashboard_model');
它在Windows上而不是在Linux上工作的原因是因为Windows文件系统是not case sensitive(通常)。一般来说,当在Windows上进行本地开发并部署到* nix环境时,当它在本地而非生产环境中工作时,首先要检查的是不正确的情况。
答案 1 :(得分:0)
我通过这种方式完成的解决方案: 我之前打过电话
$this->load->model('**Users_Model**');
现在我正在打电话
$this->load->model('**users_model**');
我还将模型文件重命名为: /项目名称/笨/应用/模型/的 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);
它解决了上述问题。
答案 2 :(得分:0)
我目前正在Ubuntu 16.04上使用CodeIgniter 3
伙计们到处都是同名的
我的模特名称为Login_database
。
示例:
在模型文件夹
中class Login_database extends CI_Model
{
}
在加载模型时在控制器中,按照这样做
$this->load->model('Login_database');
在config文件夹的Autoload文件中,输入
$autoload['model'] = array('Login_database');