Codeigniter夸应用调用model

Thinkphp里面的model都是可以跨应用调用,ci本身没有实现这个方法。
可是稍微修改下,比Thinkphp用起来更容易调用。
找到Loader.php文件的地址/system/core/Loader.php
找到后打开文件,找到这个类的初始化方法,大概在124行的位置开始。

public function __construct()
    {
        $this->_ci_ob_level  = ob_get_level();
        $this->_ci_library_paths = array(APPPATH, BASEPATH);
        $this->_ci_helper_paths = array(APPPATH, BASEPATH);
        $this->_ci_model_paths = array(APPPATH);
        $this->_ci_view_paths = array(APPPATH.'views/'   => TRUE);
 
        log_message('debug', "Loader Class Initialized");
    }

只需要修改几行代码就可以实现了。

public function __construct()
{
    $this->_ci_ob_level  = ob_get_level();
    $this->_ci_library_paths = array(APPPATH, BASEPATH);
    $this->_ci_helper_paths = array(APPPATH, BASEPATH);
 
    $paths = array('weixin/', 'application/');
    $paths = array_merge(array(APPPATH,), $paths);
    $paths = array_unique($paths);
    $this->_ci_model_paths = $paths;
 
    $this->_ci_view_paths = array(APPPATH.'views/'   => TRUE);
 
    log_message('debug', "Loader Class Initialized");
 
 
}

将几个应用的目录名写在$paths这个数组里面。
最后$paths这个数组复制给_ci_model_paths这个成员变量就行了。
ci在加载model的时候会循环这个数组下面的models文件,如果找到文件就会自动跳出
这里稍微做了一下处理,以当前的调用文件的目录优先查找.

posted @ 2014-10-24 12:02  北斗极星  阅读(1134)  评论(0编辑  收藏  举报