HMVC на CodeIgniter 3 не работает - получаем 404
Привет, мне нужна ваша помощь, пожалуйста.
Я пытаюсь настроить модульность в своей установке CI 3, но, похоже, не работает. Я использую пакет wiredesignz, найденный здесь на вкладке "Ветви".
Шаги, которые я сделал:
- Скопировал MY_Loader и MY_Router в приложении/ядре
- Скопированная папка MX в приложении/третья сторона
-
Скопировал эту строку кода в application/development/config.php (Я переехал config.php папка в стадии разработки )
//установить местоположение для модулей $config['расположения модулей'] =массив( Путь к приложению.'модули/'=>'../../модули/', );
-
Создан
Применение - модули -- контроллеры --- Test.php -- модели -- взгляды --- test.php
С моим Test.php вот так
class Test extends CI_Controller {
function __construct() {
parent::__construct();
}
public function index() {
$this->load->view('test');
}
}
Просто чтобы проверить, что все работает нормально, но когда я нажимаю на свой браузер localhost/myapp/test, я получаю ошибку 404.
Есть идеи, что я делаю не так?
5 answers
Вы пробовали поместить контроллеры и представления в папку test внутри папки modules?
Означает что-то вроде этого
Application/modules/test/controllers/Test.php
Папка модулей HMVC для Codeigniter 3 Как реализовать HMVC в codeigniter 3.0?
Я протестировал работы
Попробуйте заменить CI_Controller на этот MX_Controller
class Test extends MX_Controller {
function __construct() {
parent::__construct();
}
public function index() {
$this->load->view('test');
}
}
Но я думаю, что вам также нужен пример папки вложенных модулей
modules => admin => controllers
modules => admin => controllers => Test.php
modules => admin => models
modules => admin => views
modules => admin => views => test.php
Убедитесь, что вы настроили свои маршруты
Пример:
$route['test'] = "admin/test/index";
Добавьте эти строки в application/third_party/MX/Loader.php после строки 307,
protected function _ci_object_to_array($object)
{
return is_object($object) ? get_object_vars($object) : $object;
}
Работает нормально.
На всякий случай, если у кого-то все еще есть эта проблема, даже если структура файлов/папок верна, в моем случае, и мне потребовалось несколько дней, чтобы разобраться в этом, было 2 дополнительных проблемы:
- В этом я не уверен на 100%, но, если я правильно помню, я не мог видеть вложенные папки, поэтому мне пришлось снова ввести в них chmod 755
- Это был убийца: мое имя файла было в нижнем регистре ("welcome.php "вместо"Welcome.php ") для контроллера. Как только я переименовал файл в верхний регистр, я избавился из 404, и все сработало.