제목 | 컨트롤러 내 모델 호출 시 오류가 뜹니다. | ||
---|---|---|---|
글쓴이 | toryjin | 작성시각 | 2013/06/16 20:40:11 |
|
|||
m_setmodel.php 파일로 model 폴더에 만들고, class M_setmodel extends CI_Model{
function __construct()
{
parent::__construct();
}
function get_menues(){
내용
}
}
로 만들었습니다. cmcontents.php 로 컨트롤러를 만들고 class Cmcontents extends CI_Controller { public function __construct(){
parent::__construct();
}
public function index($pid=0,$id=0){
//$this->getText($pid,$id);
}
public function contents($pid=0,$id=0)
{
$this->load->model('M_setmodel');
$data["cmenu"] = $this->m_setmodel->get_menues($pid);
$this->load->view('content/common_content',$data);
}
}
로 만들었습니다. 이렇게 만들면 Undefined property: Cmcontents::$m_setmodel Fatal error: Call to a member function get_menues() on a non-object 라고 에러가 뜹니다. 하도 이상해서 $data["cmenu"] = $this->m_setmodel->get_menues($pid); 이 부분을 $CI =& get_instance(); $data["cmenu"] = $CI->m_setmodel->get_menues($pid); 로 해서 작업을 하면 정상 작동을 합니다. 이상하게 $this로 호출한 모델을 $this로 모델 내 메서드 접근이 안되는 걸까요 ㅜㅠ?? 고수님들의 많은 도움 부탁드립니다.;; |
|||
다음글 | Model을 Autoload할 때 (7) | ||
이전글 | db 수정시 is_unique 질문요. (2) | ||
변종원(웅파)
/
2013/06/16 20:45:35 /
추천
0
매뉴얼 다시 한번 잘 보시기 바랍니다.
대문자로 해야할 부분과 소문자로 해야할 부분.
모델은 소문자이고 로딩은 대문자이니 에러기 말 수밖에 없습니다.
|
toryjin
/
2013/06/17 03:36:32 /
추천
0
to 변종원 님
말씀해주신 대로 대소문자 명칭을 다시 해서 해봤습니다. m_user.php 의 모델 파일명을 가지고 class M_user extends CI_model{}로 선언했습니다. 컨트롤러 호출시 $this->load->model("M_user");
$data = $this->M_user->login(); 이렇게 해주었구요...;; 그런데도 같은 Undefined property: Cmcontents::User::$M_user Fatal error: Call to a member function get_menues() on a non-object 오류가 뜹니다 ㅜㅠ;; 이상하게 $CI =& get_instance(); 를 해주고 $CI->load 식으로 해주면 오류가 없구요 ㅜㅠ;; 좀더 자세한 조언 부탁드리겠습니다;; |
변종원(웅파)
/
2013/06/17 09:17:50 /
추천
0
php버전, ci버전 올려주세요. 새로 만드시는건지 기존 소스 수정중인지도 올려주시구요
|
toryjin
/
2013/06/17 11:59:07 /
추천
0
to 변종원 님
안녕하세요? PHP 는 5.3.13p1이고 CI는 2.1.3 입니다. (카페24 호스팅 중입니다.) 기존 소스는 어느걸 말씀이신지 모르겠지만, 일단 제가 처음부터 만들고 있는 사이트 입니다 ㅜㅠ 전에 몇번 CI 로 작업을 한적은 있는데 이런 경우는 처음이네요 ㅜㅠ;; 제대로 터득 안한채 작업을 해서 그런것 같습니다. 많은 도움 부탁드리겠습니다 ㅜㅠ |
변종원(웅파)
/
2013/06/17 12:41:30 /
추천
0
웹호스팅이면 database.php의 pconnect가 true로 되어 있는지도 보세요.
false이어야 정상작동합니다. 새로 올리신건지 유지보수중인건지 물어본겁니다. ^^ 아직도 대소문자 틀린거 같습니다. m_user.php 모델 파일 이면 class M_user extends CI_Model{}로 선언이 맞구요 컨트롤러 호출시 $this->load->model("m_user"); $data = $this->m_user->login(); 으로 사용해야 합니다. 결론은 모델 로딩문제입니다. |
toryjin
/
2013/06/23 20:20:00 /
추천
0
to 변종원 님.
안녕하세요? 답이 늦어서 죄송합니다. 매번 친절한 답변에 감사드립니다. 안타깝게도... 알려주신 모델 호출 방법대로 해도 같은 문제가 생깁니다.... pconnect 도 false 이구요... 정확한 원인을 몰라서 결국 get instance 로 해서 사용하고 있습니다 ㅜㅠ 친절한 답변에 다시한번 감사드립니다 ㅜㅠ |
변종원(웅파)
/
2013/06/24 09:27:52 /
추천
0
ci 파일을 다시 올려보는게 좋겠네요
|