CodeIgniter:我做错了什么?

时间:2011-12-18 00:00:15

标签: php codeigniter

我是CodeIgniter的新手,我正在尝试执行一些简单的示例,以了解它们的工作原理。问题是我正在尝试使用一个简单的控制器来显示一个简单的视图,只是说“索引!”强烈的字体。我也使用.htaccess以避免在控制器名称前面加上“index.php”。我正在使用mod_rewrite来实现这一目标。我正在使用:

Options +FollowSymLinks
RewriteEngine on
RewriteCond $1 !^(index\.php|files|assets|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
在routes.php中的

我有:

$route['default_controller'] = "main";

告诉CodeIgniter我想使用名为main.php

的控制器

拥有

这是我完整的控制器:

class Main extends CI_Controller {

public function index() {
    $this->load->view('main');
}


public function ingrid() {
    $this->load->view('ingrid');
}

public function remote() {
    $this->load->view('remote');
}

}

在里面,应该在视图中执行'main.php'控制器。

一切似乎都很好,但它一直给我这个错误:

Severity: Notice

Message: Undefined property: Main::$load

Filename: controllers/main.php

Line Number: 50

Backtrace:

File: /Users/sam/webroot/voipXX_client_care/application/controllers/main.php
Line: 50
Function: _exception_handler

File: /Users/sam/webroot/voipXX_client_care/index.php
Line: 260
Function: require_once 

问题是,我不明白。

2 个答案:

答案 0 :(得分:0)

您的控制器可能正在扩展基础控制器吗?

然后尝试调用parent :: Controller();在Main()类的构造函数中。

答案 1 :(得分:0)

按如下方式重写您的控制器:

class Main extends CI_Controller {

    public function __construct(){
        parent::__construct();
    }

    public function index() {
        $this->load->view('main');
    }

    public function ingrid() {
        $this->load->view('ingrid');
    }

    public function remote() {
        $this->load->view('remote');
    }
}

注意我已添加:

    public function __construct(){
        parent::__construct();
    }