| 제목 | 컨트롤러 내 모델 호출 시 오류가 뜹니다. | ||
|---|---|---|---|
| 글쓴이 | 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 파일을 다시 올려보는게 좋겠네요
                             |