[英]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();
}
}
這將解決您的所有問題。
也閱讀此文章
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.