CodeIgniter Custom Admin URI Маршруты - PullRequest
2 голосов
/ 18 января 2010

ОБНОВЛЕНИЕ: решено! Для битых страниц я просто сделал админ контроллер. Это имеет функцию для каждой модели сейчас :) Счастливые дни!

Попытка разместить мою функцию администратора в том же контроллере, что и мой код переднего плана. Для этого я настраиваю несколько пользовательских маршрутов, чтобы администратор мог получить доступ через:

/admin/controller/id // instead of /controller/admin/id
/admin/controller/create // instead of /controller/create
/admin/controller/detail/id // instead of /controller/detail/id
/admin/controller/update/id // instead of /controller/update/id
/admin/controller/delete/id // instead of /controller/delete/id

Мои текущие маршруты отлично работают для детализации, создания, обновления, удаления

$route['admin/(:any)/detail'] = "$1/detail"; // WORKS!!!
$route['admin/(:any)/detail/(:num)'] = "$1/detail/$2"; // WORKS!!!
$route['admin/(:any)/create'] = "$1/create"; // WORKS!!!
$route['admin/(:any)/create/(:num)'] = "$1/create/$2"; // WORKS!!!
$route['admin/(:any)/update'] = "$1/update"; // WORKS!!!
$route['admin/(:any)/update/(:num)'] = "$1/update/$2"; // WORKS!!!
$route['admin/(:any)/delete'] = "$1/delete"; // WORKS!!!
$route['admin/(:any)/delete/(:num)'] = "$1/delete/$2"; // WORKS!!!

ОДНАКО я не могу заставить страницу администратора работать с идентификатором. Я могу перенаправить страницу индекса, но не смогу использовать нумерацию страниц, если не могу передать идентификатор.

$route['admin/(:any)'] = "$1/admin"; // WORKS!!!
$route['admin/(:any)/(:num)'] = "$1/admin/$2"; // EPIC FAIL :( 404's

Может кто-нибудь помочь мне решить эту проблему или даже предложить альтернативное решение структуры приложения.

Ответы [ 3 ]

4 голосов
/ 19 января 2010

Убедитесь, что ваши маршруты регулярных выражений (которые включают маршруты с: num и: any) должны идти ПОСЛЕ маршрута default_controller.

Чтобы узнать больше о создании достойной панели администратора, посмотрите мою статью о создании панели администратора в CodeIgniter . Есть три достойных способа сделать это, в этой статье объясняются плюсы и минусы каждого.

0 голосов
/ 22 августа 2012

Старый вопрос, на который уже есть принятый ответ, но я думаю, что ваша настройка будет работать нормально, если вы включите привязку конца строки в свой первый RegEx:

$route['admin/(:any)/(:num)$'] = "$1/admin/$2"; // EPIC FAIL :( 404's
                          ^^^

В противном случае URL, которые вы намереваетесьчтобы захватить ваш второй RegEx будет перехвачен вашим первым RegEx.

0 голосов
/ 18 января 2010

Если ваш администратор сложен и вам нужно несколько контроллеров, вы можете просто создать папку администратора в папке приложения / контроллеров. Затем поместите свои административные контроллеры в это.

Таким образом, приложение / контроллеры / администратор / логин будут работать как http://example.com/admin/login

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