远程服务器中的 Codeigniter HMVC return 错误

Codeigniter HMVC in remote server return error

(我的英文不正确)

拜托,我在本地使用 codeigniter 中的 HMVC,但在我的远程服务器中出现错误

An uncaught Exception was encountered Type: RuntimeException

Message: Unable to locate the model you have specified: Home_model

Filename: /home/mysite/public_html/system/core/Loader.php

Line Number: 344

Backtrace:

File: /home/mysite/public_html/application/third_party/MX/Loader.php Line: 213 Function: model

File: /home/mysite/public_html/application/modules/home/controllers/Home.php Line: 143 Function: model

File: /home/mysite/public_html/application/modules/home/controllers/Home.php Line: 92 Function: _insert

File: /home/mysite/public_html/index.php Line: 315 Function: require_once

A PHP Error was encountered Severity: Core Warning

Message: Module 'mysql' already loaded

Filename: Unknown

Line Number: 0

Backtrace:

我的文件看起来像:

->Modules

--->home

--------->controllers

-------------->Home.php

--------->models

-------------->home_model.php

--------->views

-------------->contact.php

当我将模型文件更改为“Home_model.php”时,出现了这个新错误

Severity: Notice

Message: Undefined property: CI::$db

Filename: core/Model.php

Line Number: 77

Backtrace:

File: /home/mysite/public_html/application/modules/home/models/Home_model.php Line: 44 Function: __get

File: /home/mysite/public_html/application/modules/home/controllers/Home.php Line: 144 Function: _insert

File: /home/mysite/public_html/application/modules/home/controllers/Home.php Line: 92 Function: _insert

File: /home/mysite/public_html/index.php Line: 315 Function: require_once

Fatal error: Call to a member function insert() on null in /home/mysite/public_html/application/modules/home/models/Home_model.php on line 44 A PHP Error was encountered Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/mysite/public_html/system/core/Exceptions.php:271)

Filename: core/Common.php

Line Number: 564

Backtrace:

A PHP Error was encountered Severity: Error

Message: Call to a member function insert() on null

Filename: models/Home_model.php

Line Number: 44

Backtrace:

我使用了这个 HMVC https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

我认为问题出在我尝试使用数据库时,但我不知道在哪里。

模型应该是 UCfirst,从你显示的文件结构来看它不是。

因此,将 home_model.php 改为 Home_model.php。

同样适用于 class 声明,您需要:

class Home_model extends CI_model 

而不是:

class home_model extends CI_model

我假设您的本地环境是 windows 并且游览远程环境是 linux 这就是为什么会发生这种情况,因为 linux 区分大小写而 windows没有。

所以好好看看你所有的 classes(模型和控制器)它们都应该遵循这个模式。

您需要加载数据库。

class Home_model extends CI_Model {

    public function __construct() {
        parent::__construct();
        $this->load->database();

    }

}

$this->load->model('home_model', NULL, TRUE);

*第三个参数在模型中为您加载数据库