我正在使用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();
}
}
?>
知道为什么会这样吗?
答案 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