Ответ 1
В CodeIgniter 2 ваши контроллеры наследуют от суперкласса CI_Controller
, а не суперкласс Controller
, используемый в CodeIgniter 1.
То же самое относится к моделям в CI2, которые расширяют класс CI_Model
, а не Model
.
Я загрузил новый кодignign 2.0 и поместил свой контроллер, модель и просмотрел файлы в новую установку codeigniter 2.0. но я получил эту ошибку
Неустранимая ошибка: Class 'Controller' не найден в /Applications/MAMP/htdocs/site/application/controllers/forside.php в строке 3
Что я делаю неправильно? он работает со старой версией codeigniter, но с новой. Нет: S
Надеюсь, что кто-то может помочь мне
В CodeIgniter 2 ваши контроллеры наследуют от суперкласса CI_Controller
, а не суперкласс Controller
, используемый в CodeIgniter 1.
То же самое относится к моделям в CI2, которые расширяют класс CI_Model
, а не Model
.
Я думаю, что вы не расширяете контроллер, как показано ниже:
<?php
class MyOwnController extends CI_Controller {
function index()
{
// your code here
}
}
?>
Написано на http://codeigniter.com/user_guide/general/controllers.html, вам нужно расширить CI_Controller
Наряду с этим префиксом CI_ для вашего контроллера, любые основные классы, которые вы расширяете, следует разместить с папкой apps/core/. Это связано с тем, что основные классы CodeIgniter были перемещены в папку system/core/.
class Student extends CI_Controller {
function Student() {
parent::__construct();
// load helpers
$this->load->helper('url');
}
}
Включая parent::__construct();
, а не parent::Controller();
Убедитесь, что имя контроллера совпадает с префиксом, определенным в config:
По умолчанию конфигурация имеет:
$config['subclass_prefix'] = 'MY_';
Если ваш контроллер core/SomeController.php
, он не будет найден, потому что он не начинается с MY_