CodeIgniter创建MY_Controller

时间:2014-09-11 15:06:30

标签: php codeigniter controller extends

如何创建MY_Controller。放置这个文件的地方在哪里,我把它放在核心,文件夹中,然后我添加到自动加载文件中 代码

function __autoload($class)
{
 if(strpos($class, 'CI_') !== 0)
 {
  @include_once( APPPATH . 'core/'. $class . EXT );
 }
}

然后我创建了MY_Controller

class My_Controller extends CI_Controller
{

    public function __construct() {

        parent::__construct();
        $this->load->view('view_header');
        $this->load->view('includes/nav_home');
        $this->load->view('view_home');
        $this->load->view('view_footer');   

    }
}

但我一直收到错误

Class' MY_Controller'在第4行的C:\ wamp \ www \ vezba \ application \ controllers \ pages.php中找不到

我在文件中调用了MY_Controller

class Pages extends MY_Controller 
{    
   function __construct() {
    parent::__construct();
  }

} 

哪里可能有问题??

3 个答案:

答案 0 :(得分:11)

仔细检查您的班级名称和文件名。

class MY_Controller extends CI_Controller

注意MY_如何全部为大写。确保此文件保存为application/core/MY_Controller.php,再次注明案例。

CodeIgniter应该为您自动加载此文件。

文档:https://www.codeigniter.com/user_guide/general/core_classes.html

P.S。查看$config['subclass_prefix']文件中的application/config/config.php选项。

答案 1 :(得分:4)

您不需要自动加载功能。 Codeigniter将自动加载My_Controller,只要它在您的应用程序/核心目录中。

答案 2 :(得分:0)

您不需要自动加载类,框架将为您完成。在您的情况下,请检查配置文件subclass_prefix是否为“ MY_”。例如; $ config ['subclass_prefix'] ='MY_'; 将您的课程放在应用程序/核心中。确保类名和文件名相同。