2012-08-15 5 views
2

기본 CI_Controller 클래스를 확장하는 자체 클래스로 컨트롤러를 확장하려고합니다. 그것을 제외하고 작동하지 않습니다.Codeigniter 확장 컨트롤러가 작동하지 않습니다.

그것은 내 하위 클래스를 찾을 수 없다고 말합니다. 내 하위 클래스는 application/core에 있으며 이름은 My_Control_Panel입니다. 내 하위 클래스를 확장

내 클래스 :

if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class Developers extends My_Control_Panel 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper('form'); 
     $this->load->helper('url'); 
     $this->load->database(); 

     $this->checkIfLoggedIn(); 
     $this->checkIfAllowedToViewPage(); 
} 

내 서브 클래스 :

if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class My_Control_Panel extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
} 

작동해야하면서, 그것은 내 하위 클래스를 찾을 수 없다는 유지 .

답변

3

CodeIgniter에서 첫 번째 답변에 언급 된 것과 같이 CodeIgniter에서 수행하는 방법.

+0

입니다 이것은 또한 작동합니다. 감사. :) – DijkeMark

+0

환영 : – zaherg

+0

은'core' 폴더입니다. – Matthew

2

당신은, 서브 클래스 (Developers)에서 부모 클래스 (My_Control_Panel)를 포함 할 필요가 있으므로 같은 것이다 :

if (!defined('BASEPATH')) exit('No direct script access allowed'); 

include_once '../path/to/mycontrolpanel.php'; 

class Developers extends My_Control_Panel 
{ 
    // whatever 
} 
+0

하지만 CodeIgniter의 사용자 가이드에는 언급되지 않았습니다. 이것이 올바른 방법이라고 확신합니까? – DijkeMark

+0

이것은 내가 과거에 해왔 던 방식입니다. – Matthew

+0

그것은 나를 위해 작동하지만, 나는 이것이 가장 좋은 방법이라고 여전히 의심합니다. 어쨌든 고마워. :) – DijkeMark

3

당신이 CI는 확장 된 클래스를 선택하려는 경우가있을 것이다는 MY_Controller 그것을 이름을 . MY_ 부분은 구성 가능하지만 다른 부분은 구성 할 수 없습니다.

MY_ 부분이 형성되어 당신이 당신의 core 폴더 안에이 My_Controller.php 같은 파일 이름을 지정해야하고 당신이

if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class My_Control_Panel extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
} 

처럼 코드를 입력이 오른쪽입니다 config/config.php:

$config['subclass_prefix'] = 'MY_'; 
+0

네, 그걸 바꾸려고했는데 하위 클래스를 찾지 못했습니다. – DijkeMark

+0

대개 하위/대문자 문제로 끝나고, 예는 소문자 'y'가있는 'My'가 있습니다. 어쩌면 그것이 이유 일 것입니다. (또는 당신의 설정에'My_'가있을 수 있습니다) – complex857

+0

미안 해요, 실수였습니다. :) 내 코드에서 그것은 MY_ – DijkeMark

관련 문제