找不到类'BaseController'

时间:2015-10-30 08:29:26

标签: php codeigniter codeigniter-2 codeigniter-3

我正在使用PHP MVC CI。 BaseController和LoginController都在Controller文件夹中。当我运行登录控制器。它说..

  

未找到类'BaseController'

登录控制器

<?php
    if ( ! defined('BASEPATH')) die('No direct script access allowed');

    class loginController extends BaseController {

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

        public function login() {   
            $this->load->View("template/header");
            $this->load->View("login_view");
        }
    }
?>

基本控制器

<?php
    class BaseController extends CI_Controller {

        function __construct()
        {
            session_start();
            $this->load->library('session');
            parent::__construct();
        }
    }
?>

知道为什么会这样吗?

3 个答案:

答案 0 :(得分:1)

如果您需要父控制器而不是

路径 - application/core/MY_Controller.php

http://www.codeigniter.com/user_guide/general/core_classes.html

<?php

class MY_Controller extends CI_Controller {

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

}

如果您还自动加载会话,则无需使用session_start

http://www.codeigniter.com/user_guide/libraries/sessions.html

文件名:Welcome.php必须在CI3中 首字母大写

<?php

class Welcome extends MY_Controller {

}

CI 3区分大小写

这两个用户指南现在都在这里。 CI2&amp; CI3 http://www.codeigniter.com/docs

答案 1 :(得分:1)

您只需更改文件路径,如下所示:

应用程序&gt;控制器&gt;的login.php

<?php
    if ( ! defined('BASEPATH')) die('No direct script access allowed');

    class loginController extends BaseController {

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

        public function login() {   
            $this->load->View("template/header");
            $this->load->View("login_view");
        }
    }
?>

和, 申请&gt;核心&gt; Base_controller.php

<?php
    class BaseController extends CI_Controller {

        function __construct()
        {
            session_start();
            $this->load->library('session');
            parent::__construct();
        }
    }
?>

答案 2 :(得分:0)

Codeigniter不会从同一个文件夹加载它 您要么将两个类放在同一个文件中,这是不可取的,要么将基本控制器放在 application / core 中。
您还需要为扩展控制器设置前缀,例如BASE_Controller。 的应用/配置/ config.php中

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

Codeigniter有很好的文档,你可以找到你所追求的here