在codeigniter网站上出现一个非常奇怪的错误问题。
Fatal error: Call to undefined method Document::get_by_module()
导致此问题的代码行(在控制器中)是:
$this->document_type->get_by_module('module1');
控制器的构造函数:
function __construct(){
parent::__construct();
$this->load->model('document','document_type');
}
document_type类看起来像这样
class Document_type extends CI_Model {
function Document_type () {
parent::__construct();
}
function get_by_module($prefix) {
// code
}
}
我看到的主要问题是它说Document::
是类,但它应该是Document_type
。我认为没有理由它应该在文档类中查找该函数。
如果我从控制器构造函数中删除'document'类的加载,则错误消失(但其他事情会中断)。
不确定这样的事情是怎么发生的。
答案 0 :(得分:1)
看起来您正在加载错误的模型文件。这条线
$this->load->model('document','document_type');
意味着以下内容:找到一个名为“Document”的模型创建一个实例并放在$this->document_type
下。 (see the 4th example)
看起来你有一个Document
模型,所以加载成功,但如果你不想重命名放在$this
(控制器实例)下的实例,你就不应该使用第二个参数在$this->load->model()
行。
只需写下$this->load->model('document_type');