|  | 
 
 发表于 2014-5-16 17:35:31
|
显示全部楼层 
| 我使用的是扩展model的办法 在core下面新建MY_Loader.php
 
 PHP复制代码 复制代码 
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*** MY_Model Class
 * @author      57sy.com QQ:821200318
 */
class
  MY_Loader extends  CI_Loader
{
 
        /** * Model Loader  扩展CI的model
 *
 * This function lets users load and instantiate models.
 *
 * @param       string  the name of the class
 * @param       string  name for the model
 * @param       bool    database connection
 * @param       string  array('type'=>'real_data') 调用哪个数据库, 此处还可以传递别的参数,增加即可
 * @return      void
 */
        public function
  model($model, $name = '', $db_conn = FALSE , $type_str = array('type'=>'real_data') )
        {
                if (is_array($model))
                {
                        foreach ($model as $babe)
                        {
                                $this->model($babe);
                        }
                        return;
                }
 
                if ($model == '')
                {
                        return;
                }
 
                $path = '';
 
                // Is the model in a sub-folder? If so, parse out the filename and path.
                if (($last_slash = strrpos($model, '/')) !== FALSE)
                {
                        // The path is in front of the last slash
                        $path = substr($model, 0, $last_slash + 1);
 
                        // And the model name behind it
                        $model = substr($model, $last_slash + 1);
                }
 
                if ($name == '')
                {
                        $name = $model;
                }
 
                if (in_array($name, $this-> _ci_models, TRUE))
                {
                        return;
                }
 
                $CI =&  get_instance();
                if (isset($CI->$name))
                { 
                        show_error('The model name you are loading is the name of a resource that is already being used: '.$name);
                }
 
                $model = strtolower($model);
 
                foreach ($this-> _ci_model_paths as $mod_path)
                {
                        if ( ! file_exists($mod_path.'models/'.$path.$model.'.php'))
                        {
                                continue;
                        }
 
                        if ($db_conn !== FALSE  AND ! class_exists('CI_DB'))
                        {
                                if ($db_conn === TRUE)
                                {
                                        $db_conn = '';
                                }
 
                                $CI->load->database($db_conn, FALSE, TRUE);
                        }
 
                        if ( ! class_exists('CI_Model'))
                        { 
                                load_class('Model', 'core');
                        }
 
                        require_once($mod_path.'models/'.$path.$model.'.php');
 
                        $model = ucfirst($model);
 
                        $CI->$name = new $model($type_str);
 
                        $this-> _ci_models[] = $name;
                        return;
                }
 
                // couldn't find the model 
                show_error('Unable to locate the model you have specified: '.$model);
        }
        
}
 | 
 |