更改了控制器加载位置,并且无法使用控制器中的任何功能

时间:2014-01-28 21:40:35

标签: php codeigniter

默认情况下,正如你们许多人所知,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

1 个答案:

答案 0 :(得分:0)

好吧,我不知道你是如何改变控制器位置的。

但是当你扩展CI_Controller并使用构造函数方法时,首先需要执行父{h} __construct()方法,如下所示:

class Home extends CI_Controller
{
    function __construct()
    {
        /* Execute the CI_Controller constructor */
        parent::__construct();

        $this->load->database();
    }
}

这是因为本地构造函数将覆盖 控制器类中的。所以你需要手动调用它。

CodeIgniter Doc

关于SO的类似主题: