【问题标题】:CodeIgniter creating MY_ControllerCodeIgniter 创建 MY_Controller
【发布时间】:2014-09-11 15:06:30
【问题描述】:

如何创建 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');   

    }
}

但我不断收到错误

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

我在文件中调用了 MY_Controller

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

} 

哪里有问题??

【问题讨论】:

    标签: php codeigniter controller extends


    【解决方案1】:

    仔细检查你的类名和文件名的大小写。

    class MY_Controller extends CI_Controller
    

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

    CodeIgniter 应该为你自动加载这个文件。

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

    附:检查application/config/config.php 文件中的$config['subclass_prefix'] 选项。

    【讨论】:

    • 我把这些文件放在系统核心而不是应用核心
    • 您不应该修改system 文件夹。这就是application/core 存在的原因。所以你可以在不接触系统文件的情况下扩展/替换文件。
    【解决方案2】:

    您不需要自动加载功能。只要 My_Controller 位于您的 application/core 目录中,Codeigniter 就会自动加载它。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        相关资源
        最近更新 更多