2015-07-10 48 views
1

我知道在这个问题的平台上的其他问题,但我有这个非常不寻常的问题。Codeigniter 3 - 无法找到您指定的模型

我有被自动加载在autoload.php和类是建立这样的模型Company_Model.php

Class Company_Model extends CI_Model { 

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

    public function foo() 
    { 
     echo 'bar'; 
    } 
} 

然而,当我加载页面我仍然得到这个错误:

Codeignter 3 - Unable to locate the model you have specified

我在Apache 14.04上运行Apache 2,PHP 5.5.9,我找不到这个问题的错误日志,现在我很困惑,任何帮助都会被感激地接收。

我检查了StackOverflow的大写和所有其他提示,但仍然没有快乐。

编辑

自动加载代码

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

+0

您可以从指定公司模型的autoload.php中发布代码吗? – gabe3886

+1

尝试改变类名'Company_Model'到'Company_model',改变你的文件名'Company_Model.php'到''company_model.php –

+0

@Uchiha试过,但没有喜悦 –

回答

11

当您使用笨3,你必须确保你的类名和文件名只有第一个字母大写,如下解释

Class Naming Style Guide

Filename Style Guide

<?php 

class Company_model extends CI_Model { 

} 

和文件名,然后应该是Company_model.php

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

如果子文件夹中

模型>子文件夹> Company_model.php

$autoload['model'] = array('subfolder/company_model'); 

如果需要调用它的控制器仅

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

$this->company_model->function(); 

子文件夹

$this->load->model('subfolder/company_model'); 

$this->company_model->function(); 
+0

这是完美和工作感谢 –

+1

@JustinErswell为什么这个答案是完美的?什么解决了你的问题?我看到的一切都和你一样。 –

+0

欢迎光临** ** Codeigniter 3 **所有的控制器和模型以及库都需要有第一个关于类和文件名的字母作为大写。 – user4419336

0

确保你的类名和文件名应该是相同的,第一个字母应该是资本

示例

class Login extends CI_Model{ 
//some code 
} 

上面的代码,你可以看到类Login第一个字母是capital.same名称你保存你的模型文件名像登录。php在您的项目文件夹的模型目录中

相关问题