HMVC на CodeIgniter 3 не работает - получаем 404


Привет, мне нужна ваша помощь, пожалуйста.

Я пытаюсь настроить модульность в своей установке CI 3, но, похоже, не работает. Я использую пакет wiredesignz, найденный здесь на вкладке "Ветви".

Шаги, которые я сделал:

  1. Скопировал MY_Loader и MY_Router в приложении/ядре
  2. Скопированная папка MX в приложении/третья сторона
  3. Скопировал эту строку кода в application/development/config.php (Я переехал config.php папка в стадии разработки )

    //установить местоположение для модулей $config['расположения модулей'] =массив( Путь к приложению.'модули/'=>'../../модули/', );

  4. Создан

    Применение - модули -- контроллеры --- 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.

Есть идеи, что я делаю не так?

Author: Lykos, 2015-04-10

5 answers

Вы пробовали поместить контроллеры и представления в папку test внутри папки modules?

Означает что-то вроде этого

Application/modules/test/controllers/Test.php

 2
Author: rasa, 2015-05-15 07:09:35

Папка модулей HMVC для Codeigniter 3 Как реализовать HMVC в codeigniter 3.0?

codeigniter 3 hmvc tree reqire filesЯ протестировал работы

 2
Author: Limitless isa, 2017-05-23 11:46:30

Попробуйте заменить 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"; 
 0
Author: Mr. ED, 2015-04-10 17:17:34

Добавьте эти строки в application/third_party/MX/Loader.php после строки 307,

protected function _ci_object_to_array($object) 
	{
    return is_object($object) ? get_object_vars($object) : $object;
    }

Работает нормально.

 0
Author: Ganga, 2017-03-10 06:42:23

На всякий случай, если у кого-то все еще есть эта проблема, даже если структура файлов/папок верна, в моем случае, и мне потребовалось несколько дней, чтобы разобраться в этом, было 2 дополнительных проблемы:

  1. В этом я не уверен на 100%, но, если я правильно помню, я не мог видеть вложенные папки, поэтому мне пришлось снова ввести в них chmod 755
  2. Это был убийца: мое имя файла было в нижнем регистре ("welcome.php "вместо"Welcome.php ") для контроллера. Как только я переименовал файл в верхний регистр, я избавился из 404, и все сработало.
 0
Author: Marius, 2018-07-11 13:51:59