默认情况下,正如你们许多人所知,codeigniter从application/controllers (URI Segment 0)
加载控制器。嗯......我改了它,以便加载它们application/modules/(URI Segment 0)/controllers/(URI Segment 1 / not set: URI Segment 0)
。到目前为止它一切正常,但是当我创建一个控制器时,我不能使用任何默认函数$this->load
等...示例:
/**
* Home Controller Class
*/
class Home extends CI_Controller
{
function __construct()
{
$this->load->database();
}
public function index()
{
echo "Testing...";
}
}
此示例始终会导致错误:
严重性:注意
消息:未定义的属性:Home :: $ load
文件名:controllers / home.php
行号:10
答案 0 :(得分:0)
好吧,我不知道你是如何改变控制器位置的。
但是当你扩展CI_Controller
并使用构造函数方法时,首先需要执行父{h} __construct()
方法,如下所示:
class Home extends CI_Controller
{
function __construct()
{
/* Execute the CI_Controller constructor */
parent::__construct();
$this->load->database();
}
}
这是因为本地构造函数将覆盖 父控制器类中的。所以你需要手动调用它。
关于SO的类似主题: