2012-11-09 68 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

是真的,得到了​​它的感谢,希望在未来改变这个 –