这就是我所做的。
applications/config/config.php
文件中的我的设置
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
$config['subclass_prefix'] = 'MY_';
在MY_Controller.php
application/core
MY_Controller.php 文件包含:
class MY_Controller extends CI_Controller
{
public function __construct(){
parent::__construct();
}
}
在Frontend_Controller.php
application/libraries
Frontend_Controller.php 文件包含
class Frontend_Controller extends MY_Controller
{
public function __construct(){
parent::__construct();
}
}
最后,我用Frontend_Controller扩展了主控制器类
我的主控制器驻留在application/controllers/main.php
class Main extends MY_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('PrizeBondSearch_Model');
}
public function index()
{
$PrizeBonds = $this->PrizeBondSearch_Model->ShowAllPBS();
$this->load->view('home', $PrizeBonds);
}
}
问题:
所以这就出现了问题,当我使用MY_Controller
扩展主控制器类时,它完全正常,
但是当我尝试使用Frontend_Controller
类扩展主控制器时,它会给我以下问题
致命错误:找不到类'Frontend_Controller' C:\ XAMPP \ htdocs中\项目\ PrizeBondSearch \程序\控制器\ main.php 在第3行
任何想法如何解决它?
答案 0 :(得分:2)
不用担心,最后找到解决方案。
需要加载库类名。
所以在config.php文件中添加了下面的行。
function __autoload($classname){
if(strpos($classname, 'CI_')!==0){
$file = APPPATH.'libraries/'.$classname.'.php';
if(file_exists($file)&& is_file($file)){
@include_once($file);
}
}
}
现在它的工作非常好。
答案 1 :(得分:0)
在MY_Controller.php的开头包含Frontend Controller.php或使用spl_autoload来防止此错误
答案 2 :(得分:0)
已接受的答案的某些内容已在PHP中弃用。
在您的config.php文件中使用此功能
spl_autoload_register(function ($classname) {
if (strpos($classname, 'CI_') !== 0)
{
$file = APPPATH . 'libraries/' . $classname . '.php';
if (file_exists($file) && is_file($file))
{
@include_once($file);
}
}
});