Php 调用未定义的方法CI_Controller::Controller()

Php 调用未定义的方法CI_Controller::Controller(),php,codeigniter-2,Php,Codeigniter 2,我有一个控制器: class Start extends CI_Controller{ var $base; var $css; function Start() { parent::Controller(); //error here. $this->base = $this->config->item('base_url'); //error here $this->css = $

我有一个控制器:

    class Start extends CI_Controller{
   var    $base;
   var    $css;

   function Start()
   {
       parent::Controller(); //error here.
       $this->base = $this->config->item('base_url'); //error here
       $this->css = $this->config->item('css');   

   }

  function hello($name)
  {
    $data['css'] = $this->css;
    $data['base'] = $this->base;
    $data['mytitle'] = 'Welcome to this site';
    $data['mytext'] = "Hello, $name, now we're getting dynamic!";
    $this->load->view('testView', $data);
   }
}
这句话告诉我:

父::控制器()//这里有错误

 Call to undefined method CI_Controller::Controller() 
如果我删除那一行..我会在下一行中得到一个错误,它说

Call to a member function item() on a non-object

如何防止此类错误发生?

在CodeIgniter 2中,构造函数名为
\uu constructor
,而不是类名。因此,您需要调用
parent::\u construct()
而不是
parent::Controller()

这里有一篇文章,你可以阅读,它展示了CodeIgniter1.x和CodeIgniter2.x之间的一个主要区别


如果您使用的是CI 2.x,那么您的类构造函数应该如下所示:

   public function __construct()
   {
        parent::__construct();
        // Your own constructor code
   }

如果您正在通过Xampp或类似服务器运行Codeigniter项目,请在

中阅读更多信息,将以下代码添加到以下目录中config.php文件的底部;ci_project/application/config/config.php

function my_load($class) {        

    if (strpos($class, 'CI_') !== 0) {            
        if (is_readable(APPPATH . 'core' . DIRECTORY_SEPARATOR . $class . '.php' )) {                
            require_once (APPPATH . 'core' . DIRECTORY_SEPARATOR . $class . '.php');                
        }
    }

}

spl_autoload_register('my_load');
上述守则将有助于:;在核心文件夹中加载类。 我确信这在以下设置中有效;CI-3+、Xampp、Php5.6和or 5.6+

此外,您还可以通过在以下目录中创建名为MY_Controller.php的文件来决定创建并允许其他类引用您自己的控制器(它扩展了原始CI_控制器):CI_project/application/core/并在其中添加以下代码

<?php
    class MY_Controller extends CI_Controller {

    }
?>
我希望这有帮助

class Admin extends MY_Controller {
    //your function here
}