Codeigniter HVMC модульное разделение расширение URL перезапись / маршрутизация - PullRequest
0 голосов
/ 01 августа 2010

Я использовал модульное расширение HVMC, и оно прекрасно работает, но у меня возникают проблемы с выяснением, как его использовать, и можно ли использовать маршрутизацию URL с HVMC.

По сути, у меня есть модуль под названием «сайт», который является моим основным контроллером сайта по умолчанию. Все остальные модули, которые я не использую напрямую, я использую их только путем вызова echo modules :: run ('controller / method'); - Поэтому я просто хочу удалить «site» из URL, чтобы все методы внутри сайта модуль / контроллер отображаются без слова «site».

Может кто-нибудь сказать мне, если это можно сделать с помощью модульных расширений HVMC?

Любая помощь высоко ценится!

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Для полноты картины я исследовал собственное решение этой проблемы, и можно удалить префикс «site» в строке URI, добавив следующее в файл конфигурации rout.php.

$route['(:any)'] = "site/$1";
$route['default_controller'] = "site";
0 голосов
/ 30 марта 2017

Я также 3 года проработал в CI HMVC, и некоторые из моих примеров маршрутизации есть, они могут вам помочь.

Здесь я определяю 2 типа модулей, один - сайт, а другой - администратор.*

1> Маршрутизация для администратора:

/*ADMIN is a constant, you can define anything like admin or backend etc. */
/*Example: admin/login*/
$route[ADMIN.'/([a-zA-Z]+)'] = function($controller){ 
    return 'admin/'.strtolower($controller);
};

/*Example: admin/user/listing*/
$route[ADMIN.'/([a-zA-Z]+)/(:any)'] = function($controller, $function){ 
    return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function));
};

/*Example: admin/user/edit/LU1010201352*/
$route[ADMIN.'/([a-zA-Z]+)/(:any)/(:any)'] = function($controller,$function,$param) { 
    return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param;
};

/*Example: admin/user/assign-group/LU1010201352/G2010201311*/
$route[ADMIN.'/([a-zA-Z]+)/(:any)/(:any)/(:any)'] = function($controller,$function,$param,$param1){ 
    return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param.'/'.$param1;
};

2> Маршрутизация для сайта:

$route['([a-zA-Z]+)'] = function($controller) {
    return 'site/'.strtolower($controller);
};  

$route['([a-zA-Z]+)/(:any)'] = function($controller,$function){
    return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function));
};

$route['([a-zA-Z]+)/(:any)/(:any)'] = function($controller,$function,$param) {
    return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param;
};

$route['([a-zA-Z]+)/(:any)/(:any)/(:any)'] = function($controller,$function,$param,$param1) {
    return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param.'/'.$param1;
};

Это полностью динамично.Вы можете создать много контроллеров внутри любого модуля.Если вы хотите добавить больше модулей, просто создайте еще один блок маршрутизации, например 1 или 2.

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