簡體   English   中英

CodeIgniter不會在部署計算機上加載模型

[英]CodeIgniter won't load model on deployment machine

我用Codeigniter開發了一個小型應用程序,並使其與vagrant和Debian一起運行。 一切都很好。

因此,現在我正在嘗試使用Xubuntu 15.04設置虛擬機。 安裝了相同的軟件包(PHP作為Apache模塊)

現在出現以下錯誤:

Unable to locate the model you have specified: Person_model

這是我加載模型的方式:

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

這就是我的模型在models/person_model.php實際樣子

<?php

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

  // ...
}

在Xubuntu上,我正在運行PHP 5.6.4-4ubuntu6.2 ,在Debian上,我正在運行PHP 5.4.41-0 + deb7u1

感謝您的任何建議和幫助!

從CodeIgniter 3.0開始,所有類文件名(庫,驅動程序,控制器和模型)都必須以類似Ucfirst的方式命名,或者換句話說,它們必須以大寫字母開頭。 http://www.codeigniter.com/user_guide/installation/upgrade_300.html#step-2-update-your-classes-file-names

這是您必須遵循的CodeIgniter 3.0編碼約定。 因此,您的模型文件應為models/Person_model.php

可能您使用帶有Vagrant共享文件夾的區分大小寫的文件系統(主機操作系統類似於Windows或Mac)。 而且您不與Xubuntu一起使用Vagrant共享文件夾,不是嗎?

無論如何,這是文件系統的問題,而不是PHP版本或OS。

更改這些設置

模型文件名應為-person_model.php

然后在控制器中

if (!defined('BASEPATH'))        exit('No direct script access allowed');

class Resources extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('Person_model');

    }
}

和里面person_model.php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Person_model extends CI_Model {

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

這將解決您的所有問題。

也閱讀此文章

  1. CI模型
  2. CI控制器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM