Я использую только модули для частичных представлений, они никогда не направляются напрямую. Вместо этого у меня есть основные контроллеры внутри application/controllers
и представления внутри application/views/
которые выполняют Modules::run($moduleName, $params);
Это вызывает модуль и делает штраф, когда он достигнут.
Проблема заключается в том, что ни один из моих маршрутов не вызывает их application/controller/
методы . Это означает, что моя маршрутизация полностью перестала работать, и работает только начальная страница, определенная моим route['default_controller']
. Поскольку мой основной файл шаблона в application/views
вызывает Modules :: run ($ moduleName, $ params) успешно, я могу проверить модули, и HMVC работает нормально независимо.
Недавно я обновился от CodeIgniter от 2 до 3, а также от модулей расширения – пакета HMVC от WireDesignz. См. Рисунок для каталогов и соответствующих файлов.
@ /application/config/routes.php:
$route['default_controller'] = "dashboardcontroller/index"; $route['playlist(|.+?)'] = "dashboardcontroller/custommethod";
@ /application/controllers/Dashboardcontroller.php (примечание die()
):
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class dashboardcontroller extends MX_Controller { private $data = array("pagi"=>array(), "me"=>array(), 'errors'=>null); function __construct() { parent::__construct(); } function index() { die("THIS IS THE ONLY THING EVER HIT"); } function custommethod($moduleName, $params) { die("THIS IS NEVER HIT"); } }
Когда я изменяю Dashboardcontroller.php для расширения CI_Controller, я получаю каскад ошибок, начиная с MX / Base.php, повторно объявляющего класс CI.
Как я могу маршрутизировать URI в приложение / контроллеры и все еще использовать Module :: run ($ moduleName, $ params)?