用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2426|回复: 0
收起左侧

[模型] 模型里如何实现其他模型的按需加载

[复制链接]
发表于 2013-2-22 11:07:16 | 显示全部楼层 |阅读模式
lunux2008的方法可实现在控制器里对模型和类的按需加载 既然控制器实现了 那为了统一 并且也同样为了提高效率与性能 模型里也这样做何乐而不为呢 试了下
创建一个 基础model  叫 m_model 其他model继承它
但无论 用 __get方法 还是 创建一个公共方法
function($name) {
    if(!isset($this->$name)){
        $this->load->model($name);
    }
    return $this->$name;
}
可惜这样不行,如果控制器调用了模型的一个方法 这个方法里用到这个函数 那么$this关键字就指向控制器类了,报错 .

怎么解决这个问题呢
想要实现的效果就是这样   
在模型里调用其他模型    $this->模型->方法 如果模型未加载就自动加载并返回这个模型  或者不用__get方法 用一个普通方法命名model    $this->model(模型字符串参数)->方法  实现这样也可以

哪位大神能实现

本版积分规则