2012-11-09 108 views
1

我創建了一個核心控制器名爲Role_Admin並設置配置前綴定製內核控制器

$config['subclass_prefix'] = 'Role_'; 

下面是Role_Admin.phpcore文件夾

class Role_Admin extends CI_Controller { 
    function __construct() { 

    } 
} 

在控制器文件夾時,該代碼我寫

class admin extends Role_Admin { ... } 

我得到

Fatal error: Class 'Role_Admin' not found

我在做什麼是錯的。

編輯:(我創建了一個快速解決方案是更好的,任何新的核心文件,您只創建擴展MY_Controller然後在您的控制器目錄,你可以擴展您創建

class MY_Controller extends CI_Controller { 

     function __construct() { 
      parent::__construct(); 

      //include custom core classes 
      $core_path = DOCUMENT_ROOT . '/application/core'; 
      $this->load->helper('file'); 

      foreach(get_filenames($core_path) as $file) { 
       if ($file != 'MY_Controller.php') { 
        if(file_exists($file)) { 
         include_once($file); 
        } 
       } 
      } 
     } 

} 
+0

你把這個控制器和你使用的是哪個版本? –

+0

您已將'Role_Admin.php'保存在'application/core /'中,而不是'system/core /'中,對嗎? – air4x

+0

air4x,yes .... reheel我正在使用最新的截至目前 –

回答

1

任何核心控制器。設置你有$config['subclass_prefix']是好的,但你的文件名不正確。CI是要找的文件Role_Controller.php,不Role_Admin.php

有做到這一點更簡單的方法,雖然它看起來似乎是一個破解它是完全合法。返回MY_前綴,cre吃了MY_Controller.php,並在那個文件中,只需定義你想要使用的控制器類。你實際上甚至不需要一個MY_Controller類。例如:

// application/core/MY_Controller.php 
class Role_Admin extends CI_Controller {} 
class AnotherClass extends Role_Admin {} 
class SomeOtherClass extends AnotherClass {} 

所有這些類都可用於您的控制器擴展。

+0

所有這些類在那一個文件? –

+0

是的,你可以。這就是我所做的,但我的基本控制器非常精益。 –

+0

是真的,得到了​​它的感謝,希望在未來改變這個 –