【发布时间】:2011-08-19 20:52:06
【问题描述】:
我需要在没有$this->load->model 的情况下加载我的模型。我必须像这样加载它:
$modelName = new ModelName();//from a controller
class ModelName{
public function __construct(){
$CI =&get_instance();
var_dump($CI);//null
}
}
它工作正常,但$CI =&get_instance(); 实际上是空的。知道为什么吗?
编辑 1
如果我从常规控制器尝试 get_instance,它正在工作(也来自助手)。
我正在使用 require_once 加载模型
【问题讨论】:
-
如果您在控制器中尝试
$modelName = new ModelName();之前的行,是否会发生同样的事情?只是在黑暗中拍摄,我不确定为什么会发生这种情况。模型中的 CI 常量(如CI_VERSION或APPPATH)怎么样,可以访问吗?对其他人:get_instance()是一个全局 Codeigniter 函数,它返回 Controller/Codeigniter 对象。 -
get_instance 是全局函数还是类函数?如果它是一个类函数,你称它为 self::get_instance()。不过,我没有看到模型扩展了任何其他包含 get_instance 方法的类。
-
这个模型实际上是从您的测试用例中的控制器调用的,还是从其他地方调用的?你是如何加载模型的。您是否使用自己的自定义自动加载功能?请提供更多详细信息。
-
是的,但是您从哪里使用 require_once() 加载模型?我怀疑没有所有相关代码的任何人都能够帮助您解决问题。
-
您的模型在哪里?在图书馆?
$this->load->library('ModelName')工作?
标签: php oop codeigniter model