远程服务器中的 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);
*第三个参数在模型中为您加载数据库
(我的英文不正确)
拜托,我在本地使用 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);
*第三个参数在模型中为您加载数据库