CodeIgniter: Что я делаю не так? - PullRequest
0 голосов
/ 18 декабря 2011

Я новичок в CodeIgniter и пытаюсь выполнить несколько простых примеров, чтобы понять, как они работают. Проблема в том, что я пытаюсь поиграть с простым контроллером, чтобы просто отобразить простое представление с надписью «Index!» сильным шрифтом Я также использую .htaccess, чтобы избежать «index.php» перед именем контроллера. Я использую mod_rewrite для достижения этой цели. Я использую:

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

в route.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 голосов
/ 18 декабря 2011

Перепишите ваш контроллер следующим образом:

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();
    }
0 голосов
/ 18 декабря 2011

Ваш контроллер, вероятно, расширяет базовый контроллер, верно?

Затем попробуйте вызвать parent :: Controller ();в конструкторе вашего класса Main ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...