| 제목 | 좋은 아침입니다. | ||
|---|---|---|---|
| 글쓴이 | ぷ~たろ | 작성시각 | 2009/08/04 11:30:40 |
|
|
|||
|
며칠을 고민하다가 그냥 처리했습니다. 글번호 596에 대한 저에 해결책. 해결책이기보다는 그냥 편법으로 목적에만 맞춰버렸습니다. CI의 Load.php 클래스를 그냥 손 봐버렸습니다. 아래에 소스로 바꾸고. 모델을 로드할 때는 컨피그 파일에서 base_modules 변수에 경로 지정하고 사용합니다. 전체적으로는 아직 문제는 발생안하고 공유모델에 접근 가능하고, 특정모델에도 접근가능합니다.
function model($model, $name = '', $db_conn = FALSE)
{
if (is_array($model))
{
foreach($model as $babe)
{
$this->model($babe);
}
return;
}
if ($model == '')
{
return;
}
// Is the model in a sub-folder? If so, parse out the filename and path.
if (strpos($model, '/') === FALSE)
{
$path = '';
}
else
{
$x = explode('/', $model);
$model = end($x);
unset($x[count($x)-1]);
$path = implode('/', $x).'/';
}
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);
$liketeens_path = '';
//--> 여기서 지정한 경로가 인식가능하도록 손봤습니다.
if ( ! file_exists(APPPATH.'models/'.$path.$model.EXT))
{
if ( ! file_exists($CI->config->item('base_modules') . $model.EXT)) {
show_error('Unable to locate the model you have specified: '.$model);
} else {
$liketeens_path = $CI->config->item('base_modules') . $model.EXT;
}
} else {
$liketeens_path = APPPATH.'models/'.$path.$model.EXT;
}
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('Model'))
{
load_class('Model', FALSE);
}
//--> 여기서 지정한 경로가 인식가능하도록 손봤습니다.
//require_once(APPPATH.'models/'.$path.$model.EXT);
require_once($liketeens_path);
$model = ucfirst($model);
$CI->$name = new $model();
$CI->$name->_assign_libraries();
$this->_ci_models[] = $name;
}
|
|||
| 다음글 | 각각 디렉토리를 나눠도 되나요? (9) | ||
| 이전글 | Controller를 만들었는데 disallowed c... (3) | ||
|
변종원(웅파)
/
2009/08/04 12:22:25 /
추천
0
|
|
ci세상
/
2009/08/04 13:41:25 /
추천
0
좋은 정보 감사드립니다.^^
|
Loader.php를 직접 수정하지 마시고 application/libraries 에 Loader.php 라고 만드시면
코어를 건드리지 않고 원하시는 기능을 쓰실 수 있습니다.
나중에 코어가 업데이트 되도 코어만 업데이트 하시면 되거든요. ^^