我有以下简单的代码:
// FILE:controllers / Top.php
class Top extends MY_Public_Controller {
function __construct() {
}
public function Top() {
echo 'Hello';
}
}
// FILE:application / core / MY_Public_Controller.php
class MY_Public_Controller extends MY_Controller {
function __construct() {
parent::__construct();
}
}
// FILE:application / core / MY_Controller.php
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
}
}
我得到以下错误:
Fatal error: Class 'MY_Public_Controller' not found in
/var/www/example.com/public_html/application/controllers/Top.php on line 5
A PHP Error was encountered
Severity: Error
Message: Class 'MY_Public_Controller' not found
Filename: controllers/Top.php
Line Number: 5
Backtrace:
非常感谢任何帮助!
答案 0 :(得分:1)
而不是创建一个新文件(MY_Public_Controller.php)来创建My_Public_Controller类。
将此类插入My_Controller.php文件中。
以这种方式,My_Controller.php文件将如下:
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
}
}
class MY_Public_Controller extends MY_Controller {
function __construct() {
parent::__construct();
}
}
在我看到另一个答案后
或者你可以制作像#Hikmat Sijapati这样的东西,但不是你把require_once放在My_Controller.php中。尝试使用'My_Controller.php'作为参数将其放在My_Public_Controller.php中。这样的事情:
My_Public_Controller.php:
include_once('My_Controller.php');
class MY_Public_Controller extends MY_Controller {
function __construct() {
parent::__construct();
}
}
我没有尝试过这种方式,但我认为它会起作用。
答案 1 :(得分:1)
试试这个......
您可以创建任意数量的控制器,但创建控制器必须包含在扩展CI_Controller
的控制器中。如下所示:
控制器的名称和功能名称保持不同(Good Way)
MY_Controller:application/core/MY_Controller.php
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
}
include_once('MY_Public_Controller.php');// include here
}
MY_Public_Controller:application/core/MY_Public_Controller.php
class MY_Public_Controller extends MY_Controller {
function __construct() {
parent::__construct();
}
}
顶部:application/Top.php
class Top extends MY_Public_Controller {
function __construct() {
}
public function index() { //function name must be different than controller's name
echo 'Hello';
}
}