CI 묻고 답하기

제목 ci 2.0.2 controller에서 모델 못불러오는 현상
글쓴이 똥파리 작성시각 2011/07/29 11:20:42
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 18670   RSS

class Api extends MY_Controller
{
 function __construct()
 {
  parent::__construct();
  $this->load->model("common_model", "comm");
 }
 function test()
 {
  //$this->load->model("common_model", "comm");
  $this->comm->set_attr("testattr", "aaaaaa");
  echo $this->comm->get_attr("testattr");
 }
}

먼저 controller를 상속받아 core/MY_controller에서 추가적으로 필요한 항목들을 정의하고
위와 같은 콘트롤러를 만들어 사용중에 있습니다.
일단 동작에는 문제가 없는데요.

위의 내용중에 model을 메소드에서 호출하면(주석처리되어 있는), 모델의 함수를 찾지 못하는 현상이 존재합니다.
(Call to a member function set_attr() on a non-object )

근데 동일한 소스를 apmsetup으로 환경을 구축한 클라이언트(개인컴)에서는 이상없이 호출이 됩니다.
유독 서버에 업로드를 했을 경우 콘트롤러 메소드에서 로드 모델을 하게되면, 모델의 메소드를 호출못하는 현상이 존재하는데
왜이럴까요?
 

 다음글 codeigniter와 mongodb를 연동 할려고 합... (2)
 이전글 컨트롤에서 뷰를 불러올때 IE와 크롬문제요.. (5)

댓글

변종원(웅파) / 2011/07/29 18:01:07 / 추천 0
대소문자 잘못쓰신거 아닌가요? 윈도우에서는 대소문자 구분 안하지만 리눅스에서는 체크합니다
다리펙토리 / 2011/07/29 18:03:34 / 추천 0
맨위에 생성자에 true 이거 빠진거 같은데...
똥파리 / 2011/08/01 11:15:21 / 추천 0
답변감사합니다.

위에 작성한데로 __construct 안에서 모델을 호출( $this->load->model("common_model", "comm");
)하면 소스는 정상적으로 동작합니다.
하지만, test에서 모델을 호출해서 사용하면, 멤버 함수를 호출 할 수 없다라는 메세지가 떠버리는 것이니
대소문자 문제는 아니라고 생각됩니다.

다리펙토리님. 생성자에 true가 빠졌다고 하셨는데, 부모생성자호출시 parent::__construct(true); 요렇게 해야 한다는 말씀이신지요? 일단 넣어 봤으나 변화는 없네요.
변종원(웅파) / 2011/08/01 11:51:46 / 추천 0
MY_Controller 의 내용을 올려주셔야 답변이 가능할 것 같네요.
CI_Controller로 이용하는 경우에는 문제가 없으니 MY_Controller 에서 어떤 내용때문에 그럴 수 있을거라고 추측이 됩니다.