2012-09-25 3 views
0

codeigniter 사이트의 오류와 관련하여 매우 이상한 문제가 있습니다.메서드가 정의되어 있어도 정의되지 않은 메서드

Fatal error: Call to undefined method Document::get_by_module() 

(a 제어기)이 원인 코드의 라인은 다음

$this->document_type->get_by_module('module1'); 

컨트롤러의 생성자 :

function __construct(){ 
    parent::__construct(); 
    $this->load->model('document','document_type'); 
} 

DOCUMENT_TYPE 클래스이

class Document_type extends CI_Model { 
    function Document_type() { 
     parent::__construct(); 

    }  
    function get_by_module($prefix) { 
     // code 
    } 
} 
같다

주요 문제 나는 그것이 Document::이 클래스라는 것을 알았지 만 그것은 Document_type이어야한다. 그 함수에 대한 문서 클래스를 조사해야 할 이유가 없다.

컨트롤러 생성자에서 '문서'클래스의로드를 제거하면 오류가 사라집니다 (그러나 다른 것들은 중단됩니다).

그런 상황이 어떻게 될지 잘 모르겠습니다.

+0

'문서 '를로드하지 않으면 어떻게됩니까? –

+0

그 코드는 작동하지만 나중에 해당 페이지/다른 페이지의 다른 장소에서 오류가 발생합니다. – Damon

+0

나는 확실히 알고있다. 그래서 나는 오류에 대해 매우 혼란스러워합니다. – Damon

답변

1

잘못된 모델 파일을로드하는 것 같습니다. 라인

$this->load->model('document','document_type'); 

은 추가로 다음을 의미합니다 : 나에게 "문서"인스턴스를 생성라는 이름 $this->document_type 아래에 넣어 모델을 찾을 수 있습니다. (see the 4th example)

는 부하가 성공 있도록이 Document 모델을 가지고있는 것처럼 보이는,하지만 당신은 $this (컨트롤러 인스턴스) 아래에 넣어 인스턴스의 이름을 변경하지 않으려면 당신은 $this->load->model() 라인에서 두 번째 매개 변수를 사용하지 말아야합니다 .

간단히 작성하십시오.

+0

놀라운! 하하 .. – Damon

관련 문제