2012-05-24 33 views
-1

我写了一个小的codeigniter测试应用程序,目前正在我的Windows系统上运行。 我创建了一个linux虚拟机,并试图在这个新的虚拟服务器上安装应用程序。 我的一些网络应用程序运行正常,但其他部分,没有。 具体而言,本作品:PHP Codeigniter与高山linux上的Apache

http://123.123.123.123/myapp/controller1/ 

但这并不:

http://123.123.123.123/myapp/controller2/mymethod/1/2/3 

它因错误而失败,它不能加载controller2_model。

下面是对于失败(这真的叫xferLogger与控制器2)控制器的实际代码:

class xferLogger extends CI_Controller { 
     public function __construct() { 
       parent::__construct(); 
       echo(2); 
       $this->load->model('xferLogger_model'); 
       $this->load->helper('date'); //this library is needed for the base_url() method that is being called in the view "result.php" 
       $this->load->helper('url'); 
     } 

和这里的模型:

class xferLogger_model extends CI_Model { 
    public function __construct() { 
       $this->load->database(); 
       } 

完整的错误信息是:一个遇到错误。无法找到您指定的模型:xferlogger_model。

这是我注意到的东西。在错误信息中,您会注意到记录器中的“L”是小写字母。但在我的代码中,它是一个大写L. 我检查了我的控制器,模型本身以及routes.php文件。我似乎无法发现我的外壳有任何问题。

??

+2

显示完整的错误将是有益的。 –

+0

你也确定你复制了一切,包括隐藏文件,如.htaccess – ehudokai

+3

Linux区分大小写,也许这是搞乱你的应用程序。 –

回答

0

来自用户指南:类名必须首字母大写且名称的其余部分小写。因此,因此:

class Xferlogger_model extends CI_Model // First letter capitalised 

和模型负载

$this->load->model('xferlogger_model'); // lower case 

和你的PHP文件名

xferlogger_model.php // lower case 

Codeigniter Model Userguide

+0

,这并没有解决我的问题。我经历了控制器,模型和路由,并将Xferlogger替换为Xferlogger。 – dot

+0

我改进了我的答案。您是否也可以重新编辑您的原始问题,并提供更新后的代码和错误信息? – Laurence

+0

好的。所以你最新的建议将模型名称更改为全部小写确实有所帮助。它现在可以工作。那么带走课程是保持所有型号名称小写? – dot