Переопределение URI в codeigniter - PullRequest
       11

Переопределение URI в codeigniter

0 голосов
/ 05 февраля 2010

Я использую URI-маршрутизацию в CI, чтобы улучшить URL-адреса. Вот пример:

$route['users/(:any)'] = "users/index/$1";

Цель здесь - избавиться от индекса по URL. Это хорошо работает. Однако это мешает мне получить доступ к любым функциям в пользовательском контроллере, например

mywebsite.com/users/messages

Просто перенаправляет на users/index. Есть ли способ обойти это?

Ответы [ 2 ]

4 голосов
/ 05 февраля 2010

Определите список методов, которые вы хотите сохранить, и пусть подстановочный знак остатка будет совпадать:

$route['users/(messages|login|something)'] = "users/$1";
$route['users/(:any)'] = "users/index/$1";
0 голосов
/ 05 февраля 2010

Привет, я не знаком с CI, но у меня похожая система маршрутизации. ((Любой) работает как своего рода ловить всех. Когда мой маршрутизатор проверяет правила маршрутизации, он перестает проверять, найдено ли точное совпадение. Тогда ответом будет просто добавить еще один маршрут функций, прежде чем перехватывать все. Как

$route['users']                   = "users/index/";
$route['users/messages/(:any)']   = "users/checkmessages/$1";
$route['users/(:any)']            = "users/$1";

Не уверен, как CI справляется с этим, но я могу думать о чем-то вроде: первая часть URL - это класс, а вторая - функция. Маршрутизатор или модуль контроллера должны обладать интеллектом, чтобы начать вызывать функцию даже без таблицы маршрутизации. Таблицу маршрутизации следует использовать только в случае «других вызываемых имен», как я делал выше с сообщением / checkmessages штукой.

надеюсь, что это поможет вам.

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