2012-07-11 4 views
4

다음과 같이 다단계 상속 사용에 문제가 있습니다. Codeigniter 다단계 상속

나는 '사이트'와 '관리'라는 이름의 컨트롤러가

class Site extends Application 
{ 
} 

class Admin extends Application 
{ 
} 

그리고 마지막으로 클래스 '사용자'와 같은 응용 프로그램 컨트롤러를 확장

class Application extends CI_Controller 
{ 
} 

CI_Controller 클래스를 확장하는 최고 수준의 컨트롤러가 'Guest'는 '사이트'컨트롤러를 확장합니다.

class User extends Site 
{ 
} 

Class Guest extends Site 
{ 
} 

문제는 사용자 및 게스트입니다. 컨트롤러 내가 페이지 매김, form_validation 등과 같은 핵심 라이브러리를로드 할 수 없습니다.

$ this-> load-> library ('page);

하지만 사이트 컨트롤러 또는 응용 프로그램 contoller에 라이브러리를로드 할 때 작동합니다. 핵심 CI_Controller와 그 자식 컨트롤러를 확장하는 컨트롤러. 나는 그랜드 아이에로드하려고하면 작동하지 않습니다.

누군가가 왜 이런 일이 발생하는지 명확히 할 수 있습니까? 감사합니다 ...

답변

2

이전에 설정 한 다중 레벨 생성자 클래스를 보지 못했지만 작동해야합니다.

각 클래스의 생성자에서 parent::__construct() (으)로 전화 하시겠습니까?

+0

예, 저는 이것을 부릅니다. 문제는 그랜드 아이로부터 라이브러리를로드 할 수 없다는 것입니다. –

0
//-Create MY_Controller.php on application/core/MY_Controller.php 
//contents of MY_Controller.php 
class Application extends CI_Controller{ 
    function __construct(){ 
     // Call the CI_Controller constructor 
     parent::__construct();   
    } 
} 
//that is all now you can inherit class (Application) anywhere in your project