|
发表于 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);
}
}
复制代码
|
|